Excel宏未在一台计算机上运行,​​" xlsm"干扰文件名称

时间:2017-06-30 10:49:01

标签: excel excel-vba vba

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

当我尝试在此同事的Citrix帐户上运行宏时,代码在"工作簿上失败了。("文档名称")。激活"线。

我注意到功能区顶部的文档名称为"(文档名称).xlsm"。 " Xlsm"在我的Citrix帐户上打开文档时不显示。

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

有谁知道这个解决方案?

2 个答案:

答案 0 :(得分:1)

只需使用Workbooks("Document Name.xlsm").Activate,因为它可以在所有计算机上运行,​​无论Explorer是否设置为显示文件扩展名。此外,很少需要激活或选择任何内容。

答案 1 :(得分:0)

您可以使用' 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

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