这很奇怪。Visio为什么抛出异常?
场景:
- 打开Visio的新实例
- 按CTRL+N键可创建一个空白的新文档
- 转到VB编辑器
- 打开默认的"ThisDocument"代码文件
-
粘贴以下代码。
子测试()应用程序激活窗口选择全部End Sub
-
执行子程序"测试"。
您将在代码行"Application.ActiveWindow.SelectAll"中看到此异常:
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Run-time error '-2032465766 (86db089a)':
Requested operation is presently disabled.
---------------------------
OK Help
---------------------------
有人知道为什么吗?
错误"请求的操作当前被禁用"的字面意思是——请求的操作此时被禁用(在菜单中)(因为它没有意义)。
在您的情况下,您不能执行"全选",因为没有可选择的内容(您没有形状)。因此,命令"全选"被禁用。
如果你在绘图上有一些形状,这个代码就会运行得很好。
此过程不属于用于Document事件的ThisDocument
模块。右键单击左侧项目资源管理器中的ThisDocument,然后选择"插入模块",将代码剪切并粘贴到此处。
如果在运行代码之前将一个或多个形状添加到文档中并单击以选择其中一个形状,则它可以工作。这是因为以前没有ActiveWindow
,这就是错误的原因。如果没有活动窗口,则禁用选择所有形状。
我觉得Visio在设计时抛出异常,以防您在文档中没有对象时试图通过代码运行选择操作。
我希望这一变化在未来的版本中。