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

我有这个macros工作得很漂亮,但每隔一段时间它会将导出的表单保存到我工作的最后一个文件夹中,而不是我想要的特定文件夹。如何指定要进入的文件夹?

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 

replace这一行

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

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

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

添加一个stringtypesvar,其中包含文件夹的完整path。 在下面的例子中,我将使用临时目录。

 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