将工作表保存为 csv 文件时提示另存为文件对话框

Prompt save as file doalog while saving worksheets as csv files

我有以下代码将我的工作表作为 csv 文件保存到保存工作簿的文件夹中。如何修改它以显示 'save as' 对话框让我选择我要保存的位置喜欢保存吗?

更具体地说,我想修改代码以能够仅指定所有文件的保存路径。我不希望为每个工作表都保存一个。

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

Application.ScreenUpdating = False
For Each ws In Sheets(Array("01 - Currencies", ..."14 - User Defined Fields"))
    ws.Copy
    Set newWb = ActiveWorkbook
    With newWb
      .SaveAs ws.Name, xlCSV
      .Close (False)
    End With
Next ws
Application.ScreenUpdating = True

End Sub

为了简化它,我已经用文件夹选择器替换了整个东西。发布了更新的代码。现在我得到错误代码 9 - 下标超出范围。

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", "02 - .....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 = Application.GetSaveAsFilename( _
            FileFilter:="CSV Files (*.csv), *.csv", _
            Title:="Save all spreadsheets", _
            InitialFileName:=filenamestring)

干杯

VB中提示另存为对话框的命令是:

Application.GetSaveAsFilename