VBA将单张保存为CSV(不是整个工作簿)

我明白有很多的条目,如保存单独的Excel表作为CSV和每个工作表导出到一个单独的CSV文件 – 但我想保存在工作簿中的单个工作表

我在xlsm文件中的代码有一个参数和数据表。 我使用粘贴的值创build数据的工作表副本,然后将其另存为csv。 目前我的整个工作簿更改名称,并成为一个csv。

如何在Excel工作簿中“另存为csv”单个工作表?

是否有一个Worksheet.SaveAs或我必须将我的数据表移动到另一个工作簿,并保存这种方式?

代码示例

 ' [Sample so some DIMs and parameters passed in left out] Dim s1 as Worksheet Dim s2 as Worksheet Set s1 = ThisWorkbook.Sheets(strSourceSheet) ' copy across s1.Range(s1.Cells(1, 1), s1.Cells(lastrow, lastcol)).Copy ' Create new empty worksheet for holding values Set s2 = Worksheets.Add s2.Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats ' save sheet s2.Activate strFullname = strPath & strFilename ' >>> BIT THAT NEEDS FIXIN' s2.SaveAs Filename:=strFullname, _ FileFormat:=xlCSV, CreateBackup:=True ' Can I do Worksheets.SaveAs? 

使用Windows 10和Office 365

这段代码适合我。

 Sub test() Application.DisplayAlerts = False ThisWorkbook.Sheets(strSourceSheet).Copy ActiveWorkbook.SaveAs Filename:=strFullname, FileFormat:=xlCSV, CreateBackup:=True ActiveWorkbook.Close Application.DisplayAlerts = True End Sub 

它是制作整个strSourceSheet表单的副本,它打开一个新的工作簿,然后我们可以保存为.csv文件,然后closures新保存的.csv文件,而不是在原始文件上搞乱文件名。

您只需将工作簿保存为CSV文件。 Excel将popup一个警告对话框,警告您要保存到一个工作表,但是您可以使用Application.DisplayAlerts = False.来禁止警告Application.DisplayAlerts = False.

不要忘了把它回到真实。