【问题标题】:Excel Macro not running on one machine, "xlsm" interferes with document nameExcel 宏未在一台机器上运行,“xlsm”干扰文档名称
【发布时间】:2017-06-30 19:05:47
【问题描述】:

我有几个宏可以在我同事的大多数计算机上运行,​​但不能在一台计算机上运行。

当我尝试在这位同事的 Citrix 帐户上运行宏时,代码在“Workbooks.("Document Name").Activate" 行上失败。

我注意到功能区顶部的文档名称为“(文档名称).xlsm”。在我的 Citrix 帐户上打开文档时,不会出现“Xlsm”。

我认为“xlsm”会混淆宏,出现这种情况的原因与该人的 Citrix 帐户上使用的 Excel 版本有关。

有人知道这个问题的解决方案吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    只需使用Workbooks("Document Name.xlsm").Activate,因为它适用于所有机器,无论资源管理器是否设置为显示文件扩展名。此外,很少需要激活或选择任何内容。

    【讨论】:

      【解决方案2】:

      您可以使用“Like”将工作簿名称设置为变量,而不是直接依赖名称,这样您就不需要提取确切的名称。像这样的东西应该可以工作:

      Dim Book as Workbook
      Dim wbk As Workbook
      
      For Each Book In Workbooks
          If Book.Name Like "Document Name*" Then 'Like document name * for wildcard
              Workbooks(Book.Name).Activate
              Set wbk = ActiveWorkbook
          End If
      Next Book
      

      这将遍历打开的书籍,找到与您选择的名称相似的工作簿,然后激活它。显然,它需要进行修改以满足您的确切需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-02
        • 1970-01-01
        • 1970-01-01
        • 2017-11-09
        • 1970-01-01
        • 1970-01-01
        • 2017-06-25
        • 2023-03-18
        相关资源
        最近更新 更多