【问题标题】:Workbooks.Activate not working on some computersWorkbooks.Activate 在某些计算机上不起作用
【发布时间】:2022-03-31 08:00:50
【问题描述】:

我今天遇到了一个奇怪的 Excel 2013 VBA 行为,并觉得发布该问题的解决方案可能会在将来对其他人有所帮助。 以下命令在我的计算机和大多数其他计算机上运行良好,但一个用户会收到一条错误消息。我使用的是 Windows 7。

Workbooks("Book1").Activate

【问题讨论】:

  • 什么错误信息? Book1 开放了吗?发布更多代码。
  • Book1 是保存的工作簿吗?
  • 好问题 - 谢谢。我应该更具体。代码在之前保存的 Book1 中。它创造了第二本书,名字不详。所以第二本书在创建时就被激活了。然后切换回原来的 Book1 是 Workbooks.Activate 命令无法正常工作的地方。

标签: vba excel


【解决方案1】:

我发现另一个用户显示了“已知文件类型的扩展名”。默认情况下,Windows 想要隐藏这些。为了让代码在所有机器上正常工作,我必须在代码中包含文件扩展名,如下所示。创建新工作簿但尚未保存时,它不需要包含在此命令中的文件扩展名,因为它尚未确定。

Workbooks("Book1.xlsm").Activate

【讨论】:

    【解决方案2】:

    只是猜测,但这可能与 Windows 资源管理器的“文件夹选项”中的设置有关。

    在“查看”选项卡上有一个“隐藏已知文件类型的扩展名”选项 - 这将影响您在 VBA 中按名称引用工作簿的方式。

    编辑:看来你已经到了!

    【讨论】:

    • 谢谢蒂姆。当我第一次遇到这个问题时,我应该刚刚发布这个问题。我带我远程查看他的屏幕(不同的站点),开始寻找答案。你在没有任何帮助的情况下成功了!在深入研究之前,我在此站点上寻找了类似的问题和解决方案,这就是为什么我决定为其他人发布问题和答案。
    【解决方案3】:

    我已经启用了文件扩展名,但它不起作用。我通过强制激活文件和工作表来修复。

    示例(文件仍处于打开状态时):

     Windows("file2.xlsm").Activate
     ThisWorkbook.Worksheets("sheet2").Activate
    

    我知道Activate 和Select 是无效的,但如果它有效..

    【讨论】:

      【解决方案4】:

      您好,在您的代码中使用两个暗淡的工作簿,例如 暗淡 currentwb,newwb 作为工作簿

      set currentwb = ActiveWorkbook
      

      一旦您创建了新的工作簿集

      set newwb = ActiveWorkbook
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-02
        • 2011-12-22
        • 2014-07-19
        • 2014-04-28
        • 1970-01-01
        • 2020-12-29
        • 1970-01-01
        • 2023-04-05
        相关资源
        最近更新 更多