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

Excel 将多个工作表导出到指定目录中的CSV文件,excel,vba,Excel,Vba,我正在努力做到以下几点: 将工作簿中的特定工作表(任何包含“上载”的工作表名称)导出/复制到特定的文件目录 我不想更改这些工作表名称,也不想更改工作簿名称 每个工作表的文件名都是一致的,因此只要运行宏,就可以替换目录中的文件。可以有一个对话框,询问我是否确定要替换每个文件 我不想打开新创建的CSV或任何其他文件 您只需要在所有工作表中添加一个简单的循环,并测试名称 试试这个:- Sub COPYSelectedSheetsToCSV() Dim ws As Worksheet 'I

我正在努力做到以下几点:

  • 将工作簿中的特定工作表(任何包含“上载”的工作表名称)导出/复制到特定的文件目录
  • 我不想更改这些工作表名称,也不想更改工作簿名称
  • 每个工作表的文件名都是一致的,因此只要运行宏,就可以替换目录中的文件。可以有一个对话框,询问我是否确定要替换每个文件
  • 我不想打开新创建的CSV或任何其他文件

    您只需要在所有工作表中添加一个简单的循环,并测试名称

    试试这个:-

    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
    
    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