select文件夹path以在工作簿中保存多个电子表格的代码?

我有一个工作簿与多个电子表格,并希望将它们保存为单个csv文件(从各自的电子表格中保留文件名)在我select的文件夹中。

下面的代码似乎让我select一个path,但错误与以下消息:错误代码9下标超出该行的范围对于每个ws在表(数组(“01 – 货币”,“….” 14 – 用户定义
字段“))我错过了什么?

Sub SaveOnlyCSVsThatAreNeeded() Dim ws As Worksheet, newWb As Workbook Dim pathh As Variant Dim FolderName As String With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show = -1 Then FolderName = .SelectedItems(1) End If End With pathh = FolderName Application.ScreenUpdating = False For Each ws In Sheets(Array("01 - Currencies", "...., "14 - User Defined Fields")) ws.Copy Set newWb = ActiveWorkbook With newWb .SaveAs pathh.path & "\" & ws.Name, xlCSV .Close (False) End With Next ws Application.ScreenUpdating = True End Sub 

除了每个工作表的父工作簿的问题之外, pathh.Path还有一个问题。 FolderName已经是所选文件夹的完整path; 你不需要find它的.Path 。 这会产生:

运行时错误424:需要的对象。

 Sub SaveOnlyCSVsThatAreNeeded() Dim ws As Worksheet, wb As Workbook Dim pathh As Variant Set wb = ActiveWorkbook With Application.FileDialog(msoFileDialogFolderPicker) .AllowMultiSelect = False If .Show = -1 Then 'a folder was picked pathh = .SelectedItems(1) End If End With If pathh = False Then Exit Sub 'no folder picked; pathh is false Application.ScreenUpdating = False For Each ws In wb.Sheets(Array("Sheet1", "Sheet2", "Sheet4")) ws.Copy With ActiveWorkbook 'Application.DisplayAlerts = False 'to avoid overwrite warnings ' pathh is a string (variant) of the path of the folder; does not need pathh.Path .SaveAs pathh & "\" & ws.Name, xlCSV .Close SaveChanges:=False End With Next ws Application.ScreenUpdating = True End Sub 

不要忘记仔细检查数组中的工作表名称是否有错别字。

也许…

 For Each ws In ActiveWorkbook.Worksheets 

要么

 For Each ws In Sheets(Array("01 - Currencies", "14 - User Defined Fields"))