Пользователь выбирает, где сохранить книгу Excel - PullRequest
0 голосов
/ 01 июня 2018

В настоящее время у меня есть макрос, который будет считывать данные, распечатывать таблицу результатов, а затем копировать данные и результаты в другую рабочую книгу, которая затем сохраняется как обычный файл .xlsx, а не как .xlsm.Мой код для сохранения этой книги выглядит следующим образом:

NewBook.Activate
ActiveWorkbook.SaveAs Filename:=NotNum & " Make Ready", _
     FileFormat:=xlOpenXMLWorkbook
CTLBook.Activate

Он открывает новую книгу, которую я хочу сохранить, сохраняет ее под именем NotNum (переменная переменная) и строку «Make Ready», а затемвозвращает мою оригинальную книгу, чтобы я мог манипулировать ею дальше.

Функция сохранения отлично работает, однако сохраняет в папку по умолчанию (в настоящее время «Мои документы»).Есть ли способ, которым я могу кодировать что-то до или после функции сохранения, которая позволяет пользователю выбирать, где сохранить документ?Спасибо

1 Ответ

0 голосов
/ 01 июня 2018

Вы ищете что-то вроде этого:

Dim fldr As FileDialog
Dim sItem As String
Dim fileSaveName As String


Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Select a Folder to Save to"
        .AllowMultiSelect = False
        .InitialFileName = Application.DefaultFilePath
        If .Show <> -1 Then GoTo NextCode

        sItem = .SelectedItems(1)
    End With
NextCode:
        Set fldr = Nothing

sItem теперь имеет путь.

Вы можете запросить имя файла:

fileSaveName = Application.GetSaveAsFilename(NotNum & " Make Ready", fileFilter:="Excel Files (*.xlsx), *.xlsx")

Этоэто та часть, за которой вы хотите завершить:

ActiveWorkbook.SaveAs Filename:=sItem & "\" & fileSaveName, _
     FileFormat:=xlOpenXMLWorkbook

Я вплел в нее некоторые из ваших имен и сплел некоторые из использованных мной подпрограмм, которые печатают PDF-файлы по отдельности или все в одном файле.

РЕДАКТИРОВАТЬ: Этот код был адаптирован из @Ozgrid и @ Gary's Student.,.

Счастливого кодирования!

...