我有几个宏在我的大多数同事的计算机上运行,但不在一台计算机上运行。
当我尝试在此同事的Citrix帐户上运行宏时,代码在"工作簿上失败了。("文档名称")。激活"线。
我注意到功能区顶部的文档名称为"(文档名称).xlsm"。 " Xlsm"在我的Citrix帐户上打开文档时不显示。
我认为" xlsm"混淆宏,并且出现这种情况的原因与在该人的Citrix帐户上使用的Excel版本有关。
有谁知道这个解决方案?
答案 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
这将遍历打开的书籍,找到名称与您选择的名称相似的工作簿,然后将其激活。显然,需要对其进行修改以满足您的确切需求。