我目前有一个宏将读取数据,打印结果表,然后将数据和结果复制到另一个工作簿,然后保存为常规.xlsx文件而不是.xlsm。我保存该书的代码如下:
NewBook.Activate
ActiveWorkbook.SaveAs Filename:=NotNum & " Make Ready", _
FileFormat:=xlOpenXMLWorkbook
CTLBook.Activate
它会显示我要保存的新工作簿,将其保存在名称NotNum(一个变化的变量)和字符串" Make Ready"然后把我原来的工作簿带回来,这样我就可以进一步操作了。
保存功能完美无缺,但保存到我的默认文件夹(目前为“我的文档”#39;)。有没有办法可以在保存功能之前或之后编写一些东西,允许用户选择保存文档的位置?感谢
答案 0 :(得分:2)
你正在寻找这样的东西:
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的学生。 。
快乐的编码!