Excel VBA saveas csv但文件输出格式错误

时间:2016-05-13 05:37:27

标签: excel csv

我是vba的新手,我想知道为什么文件输出当我尝试这个代码只是一个默认文件而不是csv。我通过宏录制创建了这段代码。我希望能够在处理工作表后将文件另存为csv。我的代码如下

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

2 个答案:

答案 0 :(得分:1)

要将文件另存为csv,请尝试:

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

根据需要更改文件路径和文件名。

编辑:使用另存为对话框
------------------------------------------------------------------------

试试这个:

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

答案 1 :(得分:0)

当你致电ActiveWorkbook.SaveAs时,你需要用文件名替换“在这里输入代码”:

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

获得文件名后,即可保存文件。您可以选择所需的任何文件名,只需在此示例中使用该文件名代替MyFilename.csv