2017-10-25 2 views
2

EDIT: War das nicht klar genug mit meiner FrageSo erstellen Sie Ordner, eine Datei und Datei speichern in Ordner

Sub NewWB2() 
Dim wb As Workbook 
Dim POname As String 
Dim lrow As Long 
Dim NewfolderPath As String 

lrow = Cells(Rows.Count, 3).End(xlUp).Row 
POname = Worksheets("Sheet1").Cells(lrow, 10).Value 'name I want for both the folder and the document 

MkDir "C:\Users\First.Last\Desktop" & "\" & POname 'creates the folder in the path I want 
NewfolderPath = "C:\Users\First.Last\Desktop\" & POname ' variable to define that path 

Set wb = Workbooks.Add("C:\Users\First.Last\Documents\Custom Office Templates\PO Template.xltm") ' creates from template 
ActiveWorkbook.SaveAs Filename:=POName 'Saves file as variable "POname" 

End Sub 

Alles hier funktioniert. Alles, was ich tun muss, ist eine Codezeile hinzuzufügen, die die neue Arbeitsmappe in dem Ordner speichert, den ich erstellt habe. Ich kann nicht finden, wie man das macht und weiß nicht, wie man das hinzufügt.

+0

Geben Sie dem Dateinamen eine Erweiterung? Es gibt eine Menge fehlender Informationen über den Wert Ihrer Variablen, die eine Fehlersuche erschweren. – braX

+0

Das ist alles Code, den ich habe. Alles, was ich entfernt habe, ist der Name des Zielordners, da er den vollständigen Namen und Details enthält. Mein Code erstellt derzeit erfolgreich einen Ordner am richtigen Ort mit dem richtigen Namen, erstellt eine Datei mit dem richtigen Namen und speichert sie. Alles, was ich hinzufügen muss, ist eine Codezeile, um es in dem Ordner zu speichern, den ich erstellt habe, was ich nicht herausfinden kann. – Dev

Antwort

0

Können Sie ein Zeichenfolgenbeispiel von POname, das Sie verwenden, angeben? Ich glaube, Sie ein '\' verpasst in NewfolderPath:

Versuchen:

Sub NewWB2() 
    Dim wb As Workbook 
    Dim POname As String 
    Dim lrow As Long 
    Dim NewfolderPath As String 

    lrow = Cells(Rows.Count, 3).End(xlUp).Row 'finds the last row 
    POname = Worksheets("Sheet1").Cells(lrow, 10).Value 'name of Folder and File 
    NewfolderPath = "C:\destinationfoldername\" & POname 

    MkDir NewfolderPath 'creates the new folder with the name defined above 
    Set wb = Workbooks.Add("C:\folderwithtemplate\Template.xltm") 'creates new wb from template 

    ActiveWorkbook.SaveAs NewfolderPath & "\" & POname 
End Sub 
+0

Sorry, das war nicht das Problem, da es den Ordner gut erstellt. Ich änderte den Weg, weil er persönliche Details hatte lol. Ein Beispiel für POname wäre "PO 123456-789 Example". Der Ordner und die neue Excel-Datei hätten denselben Namen. – Dev

+0

Ah, ich verstehe, hahaah. Das Problem ist dann in den sicheren Teil des Skripts? Versuchen Sie dies: 'ActiveWorkbook.SaveAs NewfolderPath &" \ "& POname' – leonardoAK

+0

Also nur um zu klären, das erstellt derzeit den Ordner ordnungsgemäß, erstellt und speichert die Arbeitsmappe ordnungsgemäß ... alles, was ich ändern möchte, ist die Datei in der speichern neuer Ordner, den ich erstellt habe. Ich habe gerade keinen Code dafür und kann es nicht herausfinden – Dev

0

mit diesem Versuchen, erraten Sie vermissen Ihr Dateiname:

ActiveWorkbook.SaveAS Filename:=NewfolderPath & "\" & POname & "\Filename" 

, wenn Sie eine Variable verwenden für Ihr Dateiname versuchen:

ActiveWorkbook.SaveAS Filename:=NewfolderPath & "\" & POname & "\" & Filename 
+0

Ich habe derzeit" ActiveWorkbook.SaveAs Dateiname: = POname ". All dies speichert die Datei mit dem Variablennamen, den ich möchte. Was füge ich hinzu, damit es in dem neuen Ordner speichert, den ich erstellt und benannt habe. – Dev

+0

Bitte sehen Sie meine neue Zeile, ich füge die NewfolderPath Variable hinzu. –

+0

Überprüfen Sie meinen bearbeiteten Post ... Ich konnte das nicht zur Arbeit bringen – Dev

Verwandte Themen