让用户选择保存 Excel 工作簿的位置
Having a user choose where to save an Excel workbook
我目前有一个宏可以读取数据、打印结果 sheet,然后将数据和结果复制到另一个工作簿,然后保存为常规 .xlsx 文件而不是 .xlsm .我保存那本书的代码如下:
NewBook.Activate
ActiveWorkbook.SaveAs Filename:=NotNum & " Make Ready", _
FileFormat:=xlOpenXMLWorkbook
CTLBook.Activate
它会调出我要保存的新工作簿,将其保存在名称 NotNum(一个变化的变量)和字符串 "Make Ready" 下,然后调出我的原始工作簿,以便我可以进一步操作它。
保存功能完美运行,但它保存到我的默认文件夹(当前 'My Documents')。有没有一种方法可以在保存功能之前或之后编写一些代码,使用户可以选择保存文档的位置?谢谢
您正在寻找这样的东西:
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 的学生。 . .
编码愉快!
我目前有一个宏可以读取数据、打印结果 sheet,然后将数据和结果复制到另一个工作簿,然后保存为常规 .xlsx 文件而不是 .xlsm .我保存那本书的代码如下:
NewBook.Activate
ActiveWorkbook.SaveAs Filename:=NotNum & " Make Ready", _
FileFormat:=xlOpenXMLWorkbook
CTLBook.Activate
它会调出我要保存的新工作簿,将其保存在名称 NotNum(一个变化的变量)和字符串 "Make Ready" 下,然后调出我的原始工作簿,以便我可以进一步操作它。
保存功能完美运行,但它保存到我的默认文件夹(当前 'My Documents')。有没有一种方法可以在保存功能之前或之后编写一些代码,使用户可以选择保存文档的位置?谢谢
您正在寻找这样的东西:
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 的学生。 . .
编码愉快!