繁体   English   中英

将多个工作表导出为CSV并指定保存文件夹

[英]Export multiple worksheets to CSV and specify save folder

我已经让这个宏工作得很漂亮了,但是它会不时地将导出的工作表保存到我工作的最后一个文件夹中,而不是我想要的特定文件夹。如何指定他们应该进入的文件夹?

Sub asdf()
Dim ws As Worksheet, newWb As Workbook

Application.ScreenUpdating = False
For Each ws In Sheets(Array("sheet1", "sheet2", "sheet3"))
   ws.Copy
   Set newWb = ActiveWorkbook
   With newWb
      .SaveAs ws.Name & ".csv", xlCSVWindows
      .Close (False)
   End With
Next ws
Application.ScreenUpdating = True

End Sub

您需要在代码中指定要保存的位置。

尝试这个。

.SaveAs FileName:="C:\OutputFilepath\" & ws.Name & ".csv", FileFormat:=xlCSV, CreateBackup:=False

替换此行

.SaveAs ws.Name & ".csv", xlCSVWindows

.SaveAs "D:\MyFolder\" & ws.Name & ".csv", xlCSVWindows

将“D:\\ MyFolder \\”更改为所需的路径。

添加包含文件夹完整路径的字符串类型var。 在以下示例中,我将使用临时目录。

Sub asdf()

    Dim ws As Worksheet, newWb As Workbook, fp as string

    fp = environ("TEMP") & Chr(92)
    'could be something like
    'fp = environ("USER") & "\desktop\"

    Application.ScreenUpdating = False
    For Each ws In Sheets(Array("sheet1", "sheet2", "sheet3"))
       ws.Copy
       Set newWb = ActiveWorkbook
       With newWb
          .SaveAs fp & ws.Name, xlCSVWindows   'add the path, let saveas add the extension
          .Close savechanges:=False
       End With
    Next ws
    Application.ScreenUpdating = True

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM