Excelmacros未在一台机器上运行,“xlsm”会干扰文档名称

我有几个macros运行在我的同事的大部分计算机上,但不是一个。

当我尝试在这个同事的Citrix帐户上运行macros时,代码在“Workbooks。(”Document Name“)上失败。激活”line“。

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

我认为这个“xlsm”让macros观混淆,而这个出现的原因与在该人的Citrix账户上使用的Excel版本有关。

有谁知道这个解决scheme?

只需使用Workbooks("Document Name.xlsm").Activate ,因为无论Explorer是否设置为显示文件扩展名,都可以在所有机器上使用。 而且,很less有必要激活或select任何东西。

不用直接依赖名字,你可以使用“Like”将工作簿名称设置为一个variables,所以你不需要拉取确切的名字。 像这样的东西应该工作:

 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 

这将通过打开的书籍进行循环,find一个名称类似于您select的工作簿,然后激活它。 显然,它需要进行修改,以适应您的确切需求。