将多个(特定)工作表导出到指定目录中的CSV文件

我是VBA新手。 我正在尝试做下面的事情,但代码没有像预期的那样工作 –

  1. 将工作簿中的特定工作表(包含“上载”的任何工作表名称)导出/复制到特定文件目录。
  2. 我不希望这些工作表名称更改,也不需要更改工作簿名称。
  3. 每个工作表的文件名是一致的,所以只要我运行这个macros,就可以replace目录中的文件。 可以有一个对话框,询问我是否确定要replace每个文件。
  4. 我不希望新创build的CSV或任何其他文件打开。

Sub SheetsToCSV()'Jerry Beaucaire(1/25/2010),更新(8/15/2015)
'将每张纸张保存到单个CSV文件
Dim ws As Worksheet,fPATH As String

Application.ScreenUpdating = False'加速macros
Application.DisplayAlerts = False'自动覆盖旧文件
fPATH =“C:\ 2015 \ CSV \”path保存进去,记住这个string的最后\

For Each ws In Worksheets ws.Copy ActiveWorkbook.SaveAs Filename:=fPATH & ActiveSheet.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close Next ws 

Application.ScreenUpdating = True
结束小组

您只需要在所有工作表中添加一个简单的循环并testing名称即可。

尝试这个:-

 Sub COPYSelectedSheetsToCSV() Dim ws As Worksheet 'In case something goes wrong On Error GoTo COPYSelectedSheetsToCSVZ 'Loop through all worksheets For Each ws In ActiveWorkbook.Sheets 'Does the name contain "Upload" If InStr(1, ws.Name, "Upload") > 0 Then 'Make the worksheet active ws.Select 'Save it to CSV ActiveWorkbook.SaveAs Filename:="/Users/reginaho/Desktop/Upload/" & ws.Name & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False End If Next COPYSelectedSheetsToCSVX: 'Clean up the memory usage Set ws = Nothing Exit Sub COPYSelectedSheetsToCSVZ: MsgBox Err.Number & " - " & Err.Description Resume COPYSelectedSheetsToCSVX End Sub