提问者:小点点

将更多工作表导出为单独的. csv文件


我试图使用下面的代码在两个不同的csv文件中导出两个工作表:

import_bt.SaveAs Filename:="D:\Temp\import_bt.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=False
import_brd.SaveAs Filename:="D:\Temp\import_brd.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True

代码工作正常,但我有一个问题,它还将我的整个文件保存为最后一个名为import_brd. csv文件。


共1个答案

匿名用户

为了能够在不更改活动文档名称的情况下复制工作表,您无法按尝试的方式继续。它将始终保存工作表,但工作簿将保存为您上次分配的(csv)名称。

请尝试此代码:

Sub testSaveSheetAsCSV()
   Dim import_bt As Worksheet, import_brd As Worksheet, wb As Workbook

    'I used dummy sheets name only for testing reason. Please, use your real ones:
    Set import_bt = Sheets("Test") 'use here your necessary sheet
    Set import_brd = Sheets("Teste") 'use here your necessary sheet
     Set wb = Workbooks.aDD
     import_bt.Copy Before:=wb.Worksheets(1)
     wb.SaveAs fileName:=ThisWorkbook.path & "\import_bt.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=False
     import_brd.Copy Before:=wb.Worksheets(1) 'it will save its first sheet
     wb.SaveAs fileName:=ThisWorkbook.path & "\import_brd.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
     wb.Close False
End Sub

它添加一个新工作簿,在新创建的工作簿中现有的第一个工作表之前复制需要CSV转换的工作表,然后保存(ASCSV)。它重复第二个工作表的步骤并关闭临时工作簿。

如果您需要避免有关覆盖现有文件的警告(如果是这样的话),可以调整代码以避免它。只有在您想使用代码或使用最后必要的文件更新现有csv文件的情况下。