Excel VBA中的文件保存对话框
Posted
技术标签:
【中文标题】Excel VBA中的文件保存对话框【英文标题】:File Save Dialog In Excel VBA 【发布时间】:2017-12-25 04:45:48 【问题描述】:我正在尝试按照http://software-solutions-online.com/excel-vba-save-file-dialog-getsaveasfilename/ 此处的教程进行操作,并将我的代码输入为:
varResult = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx")
现在当我编译语法时,我得到一个错误:
未找到方法或数据成员
在这个特定元素上GetSaveAsFilename
我在 Access 2013 中运行此程序以保存 Excel 2013 .xlsx - 我应该更改什么以便提示用户输入保存名称和位置?
【问题讨论】:
奇怪的是,如果你处理了这个例子,它就行不通了。您是否声明了对象varResult
(如示例中所示)?
@ashleedawg - 是的,我将其声明为 Variant,就像示例所示。难道是我从 Access 调用此方法来捕获 Excel 文件的保存文件名/位置吗?
【参考方案1】:
此特定方法在 Access VBA 中不起作用。 (VBA 不能在 Office 产品之间 100% 互换。)
Access VBA 中的示例:
Sub TestFileDialog()
'requires Reference to "Microsoft Office xx.x Object Library"
Dim strFilename As String
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
strFilename = .SelectedItems(1)
Else
MsgBox "No filename specified!", vbExclamation
Exit Sub
End If
End With
'do something with strFilename
End Sub
这应该适用于从 Access 中保存 Excel 对象。
【讨论】:
【参考方案2】:另一个问题,这个网站上的“Save as…” dialog box in MSAccess vba: how? 有一些有用的提示可以帮助你;我有一个类似的问题,这为我解决了!正如 ashleedawg 所说,VBA 语法在不同的应用程序中并不完全相同。
您也可以尝试使用Application.FileDialog msoFileDialogSaveAs
,但请确保将包含这些符号的库包含到您的项目中。最有可能的是,Access 会生成一个提示,通知您将库引用添加到项目中。
唯一的问题是您无法应用文件类型过滤器。如果这很重要,请查看微软论坛上的本指南。 Display Open and Save As Dialog Boxes in Access with API Functions。
【讨论】:
谢谢,但现在我会觉得自己像个混蛋,因为我应该“标记”你的答案...... :-( 实际上我会留下它,但其他人一定会请注意,它属于“不是答案”类别...但是,您仍然可以修复它!:-) 应该将其更改为 comment 或 edited 进行扩展信息。如果不是 S.O.链接,我建议从链接页面复制/粘贴一些信息(部分原因是链接不会永远存在),但在这种情况下,如果您觉得您链接的问题与此问题相同,您可以提出这个问题作为“重复”。 更多信息:“minimal reproducible example”和“Are answers that just contain links elsewhere really “good answers”?”。顺便说一句,欢迎! @ashleedawg 感谢您提供的信息!我对这个网站比较陌生,会牢记:)以上是关于Excel VBA中的文件保存对话框的主要内容,如果未能解决你的问题,请参考以下文章
使用Excel VBA,如何将某一个工作表保存到新建的Excel中?
Excel 2010 VBA:使用单元格中的值保存文件以确定路径和文件名