当您可以使用已经存在的东西时,不一定总是自己发明所有东西。

您可以访问Excel中的大多数内置对话框以及Office中的其他应用程序。

如果要让用户决定将工作簿保存在何处,则可以显示内置对话框“保存为”,如下所示:

Application.Dialogs(xlDialogSaveAs).Show

要获取Excel中所有可访问对话框的列表,请使用对象浏览器。

要显示它,请在激活模块后按F2。选择Excel作为库,然后查找以xlDialog开头的常量。…​

如果您只想从以后要用于打开或保存工作簿的用户中检索文件名,则可以使用GetOpenFilename或GetSaveAsFilename方法。两种方法都显示各自的对话框,但是当用户确认对话框时,不要打开或保存文件。

这些方法将完整的文件名返回给用户想要打开或保存的文件。

FullFileName = Application.GetOpenFilename("Excel files (.xl),.xl", _

1, "Custom Dialog Title", , False)

FullFileName = Application.GetSaveAsFilename("DefaultFilename.xls", _

"Excel files (.xl),.xl", 1, "Custom Dialog Title")

结果可以按您想要的任何方式使用。您以后可以像这样打开所选的工作簿:

Workbooks.Open FullFileName

或者,您可以保存这样的工作簿:

ActiveWorkbook.SaveAs FullFileName

当用户确认FileOpen对话框或FileSaveAs对话框时,他/她也可能已更改了活动文件夹或当前文件夹,因此我经常使用这两种方法作为让用户选择文件夹的简单方法。您可以在“文件和文件夹”部分中找到让用户选择文件夹的另一种方法。