Excel VBA saveas csv但是文件输出是错误的格式
嗨,我是新来的VBA,我想知道为什么文件输出,当我试图这个代码只是一个默认的文件,而不是CSV。 我通过macroslogging创build了这个代码。 我希望能够在工作表上将文件另存为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
要将文件保存为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
根据需要更改文件path和文件名。
编辑 :使用SaveAs对话框
________________________________________________________________________________
尝试这个:
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
当你打电话给ActiveWorkbook.SaveAs
,你需要用一个文件名replace“在这里input代码”:
ActiveWorkbook.SaveAs Filename:= "MyFilename.csv"_ FileFormat:= xlCSV, CreateBackup:=False _ ActiveWorkbook.Close SaveChanges:=False
一旦你有一个文件名,你可以保存该文件。 你可以select你想要的任何文件名,在这个例子中只需使用它来代替MyFilename.csv
。
- 如何获取现有连接的外部文件的文件名 – Excel
- 通过ADO连接打开csv文件 – 列限制到255 /或只是使用另一种文件types?
- CSV文件到Excel 2010格式化date时间字段
- Xlsxwriter中是否有csv.DictWriter?
- 时间戳格式dd / mm / yyyy hh:mm:ss到yyyy-mm-dd hh:mm:ss – MySQL
- 更改该键的值,然后使用正则expression式在逗号分隔的CSV上删除该键
- Java:excel到Apache Poi的csvdate转换问题
- 保持Excel在打开/保存CSV时不会转换date
- 使用python将特定数据从一个excel文件传输到另一个