0

这很奇怪。为什么 Visio 会抛出异常?

设想:

  1. 打开新的 Visio 实例。
  2. 按 CTRL+N 获得一个空白的新文档。
  3. 转到 VB 编辑器。
  4. 打开默认的“ThisDocument”代码文件。
  5. 粘贴以下代码。

    子测试()
        应用程序.ActiveWindow.SelectAll
    结束子
    
  6. 执行子程序“test”。

您将观察到代码行“ Application.ActiveWindow.SelectAll ”的此异常:

---------------------------
Microsoft Visual Basic for Applications
---------------------------
Run-time error '-2032465766 (86db089a)':



Requested operation is presently disabled.
---------------------------
OK   Help   
---------------------------

有谁知道为什么?

4

3 回答 3

1

错误“请求的操作目前被禁用”的字面意思是 - 请求的操作目前被禁用(在菜单中)(因为它没有意义)。

在你的情况下,你不能做“全选”,因为没有什么可以选择(你没有形状)。所以“全选”命令被禁用。

如果您在绘图上有一些形状,则此代码将运行得很好。

于 2013-08-26T12:00:20.207 回答
0

我觉得 Visio 会故意抛出异常,以防您在文档中没有对象时尝试通过代码运行选择操作。

我希望在未来的版本中进行这种更改。

于 2013-08-27T11:20:45.297 回答
0

此过程不属于ThisDocument用于文档事件的模块。在左侧的 Project Explorer 中右键单击 ThisDocument 并选择 Insert Module,将代码剪切并粘贴到此处。

如果您在文档中添加一个或多个形状并在运行代码之前单击以选择其中一个,那么它可以工作。这是因为以前没有ActiveWindow,这是错误的原因。如果没有活动窗口,则禁用选择所有形状。

于 2013-08-26T10:56:23.013 回答