Vba 运行时错误'-2032465766(86db089a)和#x27&引用;请求的操作当前已禁用。”;

Vba 运行时错误'-2032465766(86db089a)和#x27&引用;请求的操作当前已禁用。”;,vba,visio,visio-2010,Vba,Visio,Visio 2010,这很奇怪。为什么Visio抛出异常 场景: 打开Visio的新实例 按CTRL+N键可创建空白的新文档 转到VB编辑器 打开默认的“ThisDocument”代码文件 粘贴以下代码 Sub test() Application.ActiveWindow.SelectAll End Sub 有人知道原因吗?此过程不属于用于文档事件的ThisDocument模块。在左侧的项目管理器中右键单击此文档,然后选择“插入模块”,将代码剪切并粘贴到此处 如果向文档中添加一个或多个形状,并在运行代码之前

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

场景:

  • 打开Visio的新实例
  • 按CTRL+N键可创建空白的新文档
  • 转到VB编辑器
  • 打开默认的“ThisDocument”代码文件
  • 粘贴以下代码

    Sub test() Application.ActiveWindow.SelectAll End Sub
    有人知道原因吗?

    此过程不属于用于文档事件的
    ThisDocument
    模块。在左侧的项目管理器中右键单击此文档,然后选择“插入模块”,将代码剪切并粘贴到此处


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

    错误“请求的操作当前已禁用”的字面意思是-此时禁用请求的操作(在菜单中)(因为这没有意义)

    在您的情况下,您不能执行“全选”,因为没有可选择的内容(您没有形状)。因此,“全选”命令被禁用


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

    我感觉Visio在设计时引发异常,以防您在文档中没有对象时尝试通过代码运行选择操作


    我希望在将来的版本中进行此更改。

    “您不能执行“全选”,因为没有可选择的内容(您没有形状)。因此,“全选”命令被禁用。“我不同意,所以有些部分。”。若并没有什么可选择的,一个设计良好的应用程序不应该抛出异常,而应该将选择集合留空。我开始认为这是一项不需要的功能。“如果您向文档中添加一个或多个形状”-我的问题是-为什么文档中需要有任何对象,否则Visio将引发异常?如果文档中没有选择任何对象,则没有
    ActiveWindow
    ,而SelectAll将选择所有形状<代码>活动窗口取决于所选对象?是。如果其中未选择任何内容。。它怎么能被激活?它们之间的关系是什么?你能分享到文档的链接吗?
    ---------------------------
    Microsoft Visual Basic for Applications
    ---------------------------
    Run-time error '-2032465766 (86db089a)':
    
    
    
    Requested operation is presently disabled.
    ---------------------------
    OK   Help   
    ---------------------------