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中?

使用 VBA 保存时显示“是不是要覆盖文件”对话框

将excel中数据保存至另一个excel中用vba

Excel 2010 VBA:使用单元格中的值保存文件以确定路径和文件名

访问中的 Vba 代码循环遍历文件夹中的所有 excel 文件,打开、保存和关闭它们

如何使用文件对话框将文件路径保存在字符串中,使用 Access VBA?