我明白有很多條目的像save individual excel sheets as csv 和Export each sheet to a separate csv file - 但我想保存一個工作表在工作簿中。VBA保存單張爲CSV(不是整個工作簿)
我的xlsm文件中的代碼有一個參數和數據表。我使用粘貼的值創建數據的工作表副本,然後將其保存爲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
如果使用Worksheet.Copy方法,沒有設置粘貼目標,Excel將打開它作爲一個新的工作簿,僅包含表。 Worksheet.Copy之後,您可以簡單地使用ActiveWorkbook,因爲複製的工作簿成爲活動工作簿,並從那裏保存爲新的CSV文件。 – Alex4336
令人驚歎 - 2500次觀看並且沒有一次投票... – micstr