在Word 2016中选择“另存为”时,VBA将生成默认文件名

时间:2016-01-06 18:34:24

标签: vba ms-word office365 word-vba

我有VBA,在Word 2010中,当用户选择“另存为”文件选项时,会将文件名默认为“另存为”屏幕。 Word 2016(Office 365)具有不同的界面,屏幕可选择保存位置(OneDrive,此PC等),然后出现“标准”“另存为”对话框,该对话框似乎已破坏代码以生成指定的默认文件名。

代码(简化标题)是

  Sub FileSaveAs()

  With Dialogs(wdDialogFileSaveAs)
    .Name = "MyTitle"
    .Show
  End With

  End Sub

如果我在Developer to Debug中运行代码,它运行正常,出现Save As屏幕并且文件名默认,但它在文件名默认为先前文档名称的实时环境中不起作用。

基于网络研究,我尝试了其他代码来更改文档的属性,将名称放在标题中,因为当选择“另存为”但这也不起作用时应该默认。

如何解决此问题的任何建议或建议将不胜感激。

谢谢!

2016年1月11日更新:   通过使用以下内容已经能够更接近:   Application.DocumentBeforeSave事件   示例https://msdn.microsoft.com/en-us/library/office/ff838299.aspx   绑定到使用事件与应用程序对象   例如https://msdn.microsoft.com/en-us/library/office/ff821218.aspx

必须添加

Cancel=True

到事件过程代码的末尾或“另存为”对话框将打开两次。 仍然有点笨拙,似乎仅限于在第一个用户生成保存事件之前运行但几乎可行。

想要分享我发现的内容,以防它帮助其他人,但任何其他改进建议都会受到赞赏,因为它似乎仍然不是最好的解决方案。 再次感谢!

1 个答案:

答案 0 :(得分:0)

感谢您报告此事。我有一个潜在的解决方法,我希望会有所帮助。

您是否可以使用SendKeys方法(https://msdn.microsoft.com/en-us/library/office/gg278655.aspx)向应用程序发送键盘快捷键(“另存为”对话框的F12,完整列表:http://aka.ms/Tf6yv0),例如

App.SendKeys("{F12}")

何时需要显示“另存为”对话框?

我希望这会有所帮助。再次感谢您提出我们的问题,我们将进一步研究根本原因。