2017-07-20 5 views
0

Ich versuche, ein Makro zu schreiben, die eine Registerkarte in eine neue Datei exportieren wird dann speichern Sie einen benutzerdefinierten Dateinamen und Dateipfad basierend auf 2 Zellenwerte. Ich bekomme immer einen Laufzeitfehler während des Speicherbereichs. Ich habe versucht, die Antworten zu ähnlichen Themen hier zu verwenden, aber der Noob zu sein, der ich bin, kann nicht scheinen, sie dazu zu bringen, für mein Problem zu arbeiten. All die Hilfe, die ich bekommen kann, wird wirklich geschätzt werden.VBA zum Speichern Excel-Registerkarte auf neue Datei Laufzeitfehler 1004

Hier ist der Code, den ich bisher habe:

Sub Export() 

    Sheets("Form").Select 
    Sheets("Form").Copy 
    Cells.Select 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Application.CutCopyMode = False 
    Dim fname As String 
    fname = Range("C1") 
    Dim fpath As String 
    fpath = Range ("G1") 
    ActiveWorkbook.SaveAs Filename:=fpath & fname & ".xls" 
     Windows("Form.xlsm").Activate 
End Sub 
+1

Wird der Wert von fpath mit einem umgekehrten Schrägstrich enden? wenn nicht, sollte es. – braX

+0

ja es tut. habe es auch versucht, ohne dabei die saveas-Syntax zu ändern: ActiveWorkbook.SaveAs Dateiname: = fpath & "\" & fname. Zusätzliche Information würde sein, dass der Fehler zeigt, dass Excel nicht auf die Datei zugreifen kann, dann den fpath-Wert, den fname-Wert, dann einen Backslash mit Buchstaben und Zahlen gibt. dh C: users \ me \ downloads \ formexport \ 0CBC123 wobei 0CBC123 diejenige ist, die nicht Teil des Namens sein sollte – jptirona

+0

Ändern Sie 'ActiveWorkbook.SaveAs Dateiname: = fpath & fname &" .xls "' in 'ActiveWorkbook.SaveAs Dateiname : = fpath & fname & ".xls", FileFormat: = 56' –

Antwort

0

es herausgefunden. Der Benutzer gab einen Wert in C1 mit "\" ein. Es spart jetzt gut. Was du gabst, arbeitet jetzt. Vielen Dank!

Verwandte Themen