我有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
到事件过程代码的末尾或“另存为”对话框将打开两次。 仍然有点笨拙,似乎仅限于在第一个用户生成保存事件之前运行但几乎可行。
想要分享我发现的内容,以防它帮助其他人,但任何其他改进建议都会受到赞赏,因为它似乎仍然不是最好的解决方案。 再次感谢!
答案 0 :(得分:0)
感谢您报告此事。我有一个潜在的解决方法,我希望会有所帮助。
您是否可以使用SendKeys方法(https://msdn.microsoft.com/en-us/library/office/gg278655.aspx)向应用程序发送键盘快捷键(“另存为”对话框的F12,完整列表:http://aka.ms/Tf6yv0),例如
App.SendKeys("{F12}")
何时需要显示“另存为”对话框?
我希望这会有所帮助。再次感谢您提出我们的问题,我们将进一步研究根本原因。