如何获得Application.GetSaveAsFilename VBA的dynamic位置?

我有下面的代码来保存我的工作簿文件为WriteResPassword,但有没有办法从Application.GetSaveAsFilename接口中获取当前工作簿的path? 现在保存为界面显示文档文件夹,所以它需要5-10多点击才能到达我想要的地方。

Sub PasswordSave() Application.DisplayAlerts = False Application.ScreenUpdating = False SaveAsName = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx") ActiveWorkbook.SaveAs Filename:=SaveAsName, FileFormat:= xlNormal, WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False End Sub 

对话框的起始目录是CurDir所说的,所以你可以在调用对话框之前使用ChDir

 ChDir Activeworkbook.Path 

要么

 ChDir "C:\Users\Public\Desktop" 

Activeworkbook.Path将为您提供一个string与工作簿的文件夹位置。

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-path-property-excel

这在c:\ windows打开

 Application.GetSaveAsFilename "c:\windows" 

所以这是你的答案

 Application.GetSaveAsFilename activeworkbook.path