2016-05-13 3 views
0

HALLO ich bin neu zu VBA und wundere mich, warum die Datei ausgegeben, wenn ich diesen Code nur eine Standarddatei und nicht CSV versucht. Ich habe diesen Code per Makroaufnahme erstellt. Ich möchte in der Lage sein, die Datei als csv nach der Arbeit an dem Blatt zu speichern. Mein Code ist wieExcel VBA saveas csv aber die Dateiausgabe ist das falsche Format

Sub Done() 
     Sheets("Test").Select 
     Range("A2:M3").Select 
     Range("A2:M3").Copy 
     Range("A2").PasteSpecial xlPasteValues 
     Application.CutCopyMode = False 

     Sheets("Test").Select 
     ActiveWorkbook.Save 

     ActiveWorkbook.SaveAs Filename:= _ 
      Application.GetSaveAsFilename, FileFormat:= _ 
      xlCSV, CreateBackup:=False 
      ActiveWorkbook.Close SaveChanges:=False 

    End Sub 

Antwort

1

folgt die Datei als CSV-Versuch zu speichern:

Sub Done() 
    Sheets("Test").Select 
    Range("A2:M3").Select 
    Range("A2:M3").Copy 
    Range("A2").PasteSpecial xlPasteValues 
    Application.CutCopyMode = False 

    Sheets("Test").Select 
    ActiveWorkbook.Save 

    ActiveWorkbook.SaveAs Filename:="C:\filename.csv", _ 
     FileFormat:=xlCSV, CreateBackup:=False 
     ActiveWorkbook.Close SaveChanges:=False 

End Sub 

ändern Dateipfad und den Dateinamen nach Bedarf.

EDIT: Mit SaveAs Dialogfeld
________________________________________________________________________________

Try this:

Sub Done() 
    Sheets("Test").Select 
    Range("A2:M3").Select 
    Range("A2:M3").Copy 
    Range("A2").PasteSpecial xlPasteValues 
    Application.CutCopyMode = False 

    Sheets("Test").Select 
    ActiveWorkbook.Save 

    fname = Application.GetSaveAsFilename(InitialFileName:="Test", FileFilter:="CSV (Comma delimited) (*.csv), *.csv", Title:="Save As") 
    ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV 
End Sub 
+0

Danke. Schnelle Frage muss ich immer die .csv dort haben? – Nessuno

+0

@Nessuno - Wenn Sie über 'Dateiname: =" C: \ filename.csv "' sprechen, dann müssen Sie, solange Sie 'FileFormat: = xlCSV' erwähnen, '.csv' nicht schreiben. Das bedeutet 'Dateiname: =" C: \ Dateiname "' funktioniert auch. – Mrig

+0

@Nessuno-Bearbeiteter Code öffnet SaveAs Dialogbox für Benutzer, um Pfad und Dateinamen einzugeben. – Mrig

0

Wenn Sie ActiveWorkbook.SaveAs rufen, müssen Sie "Code eingeben hier" mit einem Dateinamen ersetzen :

ActiveWorkbook.SaveAs Filename:= "MyFilename.csv"_ 
     FileFormat:= xlCSV, CreateBackup:=False _ 
     ActiveWorkbook.Close SaveChanges:=False 

Sobald Sie einen Dateinamen haben, können Sie die Datei speichern. Sie können einen beliebigen Dateinamen auswählen und diesen anstelle von in diesem Beispiel verwenden.

+0

Danke, dass ich meine Torheit erkannt habe, nachdem ich deinen Kommentar gesehen habe. erstmalige Buchung Mein Code hat nicht das "Code hier eingeben". edited meine Post. – Nessuno

+0

Was genau passiert gerade jetzt? Versuchen Sie herauszufinden, wie Sie diesen Code verwenden oder wie er funktioniert? –

+0

Ich habe herausgefunden, wie man die Ausgabedatei in das richtige Format (CSV) bringt. In meinem ursprünglichen Code war es eine Datei. Aber es ist jetzt aussortiert. Danke, dass du dir Zeit und Mühe genommen hast, um zu helfen =) – Nessuno

Verwandte Themen