【发布时间】:2017-11-21 23:02:09
【问题描述】:
我希望在 Word 2010 文件中禁用“另存为”,但仍允许保存。换句话说,我希望用户能够更新现有文件但不能创建副本。我意识到这对于知道解决方法的人来说是不可能真正做到的,但对于一般用户来说,我已经在 Excel 中成功地做到了这一点,但对 VBA 来说还是很陌生。
当我将以下内容添加到一个全新的文档时,一切都按预期工作:
Sub FileSaveAs()
MsgBox "Copies of this file cannot be created. Please save changes in the original document." & _
, , "Copy Cannot be Created"
End Sub
我的文档还有其他用于各种命令按钮的宏,但没有一个涉及保存文档(使用原始名称或另存为)。还有一个宏在打开时运行,但那是 1 行到书签。当我尝试在本文档中“另存为”时,我得到了预期的消息框。当我尝试“保存”时,事情变得很奇怪:我将保存为对话(问题 1)。无论我尝试以相同的名称还是其他名称保存,对话的行为都与正常情况一样,只是它不保存并且对话框再次自动打开,基本上创建了一个无限循环,直到我点击取消(问题 2)。尝试保存后,我还会间歇性地弹出“磁盘已满”警告,我可以将其关闭,但只要文件打开,几分钟后就会出现(可能与自动保存有关?)
由于宏在测试文件中有效,我认为这种奇怪的行为一定是我的代码中的其他地方,但是只要我不包含上面的另存为代码,我的文档和其他宏就会正常保存,所以现在我完全糊涂了。在我提出我的其余代码之前很长并且由于上述原因我认为不会影响事情,我想我会问这个:
1. 除了我的其他命令按钮宏之外,还有其他地方可能导致这种行为吗?
2. 有没有人推荐的更好的方法来实现我禁用另存为但不保存的最终目标?
提前感谢您提供的任何建议。
【问题讨论】: