【发布时间】:2018-07-13 00:18:14
【问题描述】:
我正在尝试在 OUTLOOK(MS Office 2013 或 2016)中打开另存为文件对话框。由于 Outlook 不支持 FileDialogs,我使用 Excel(这似乎是基于数十次搜索的首选方法)。
我已经成功打开了 FilePicker 对话框 (msoFileDialogFilePicker) 并打开了文件,但我无法让它在 SaveAs 对话框 (msoFileDialogSaveAs) 中工作。
谁能解释为什么 SaveAs 不起作用,但 FilePicker 起作用。或者,有人可以解释我做错了什么。
这里是一些示例代码。这些都有效:
Dim xlobj As Excel.Application
Set xlobj = New Excel.Application
Dim objDialog As FileDialog
Set objDialog = xlobj.FileDialog(msoFileDialogOpen) 'This WORKS
Set objDialog = xlobj.FileDialog(msoFileDialogFolderPicker) ' This Works too
Set objDialog = xlobj.FileDialog(msoFileDialogFilePicker) ' This also works
objDialog.Show
但是,当我尝试使用 msoFileDialogSaveAs 时出现错误(错误 - 自动化错误远程过程调用失败)。
Dim xlobj As Excel.Application
Set xlobj = New Excel.Application
Dim objDialog As FileDialog
Set objDialog = xlobj.FileDialog(msoFileDialogSaveAs) ' This throws ERROR???
我欢迎任何想法或见解。
非常感谢,
DGP
PS。如果它相关。用户需要将他们的一些电子邮件信息保存在法律文件夹中。我已经建立了一种使用发件人或收件人和日期戳作为文件名直接保存它们的方法。对于这个用例,他们需要一个文件对话框,以便他们可以手动命名要保存的文件。
【问题讨论】:
-
另存为什么?你在保存什么?只有应用程序实例没有工作簿。为应用程序添加/打开工作簿,然后尝试调用 SaveAs 对话框。
-
我们正在尝试保存 Outlook 邮件。我只使用 Excel,因为 Outlook 不支持 FileDialog 使用。
-
要使用另存为,您需要打开工作簿。在裸应用程序对象上它会抛出错误。简单。
-
好的。我想这有点道理。那么,有谁知道如何从 Outlook 打开另存为文件对话框?
标签: excel vba outlook filedialog