我已经打开一个工作簿,但是我正在运行另一个工作簿的宏。我想使用它的名称激活第一个工作簿。

编码:

FileName = input_path_1 & input_file_1
Workbooks(FileName.xls).Activate

当我尝试这样做时,它给我“下标超出范围”错误。我该如何解决?

最佳答案

检查您的变量Filename是否包含正确的文件名。 (例如Sample.xls)
还要检查input_path_1input_file_1是否具有正确的值。
如果他们有,应该是这样的:

Workbooks(Filename).Activate

现在,如果您需要附加扩展名(例如Filename的值只是Sample):
Workbooks(Filename & ".xls").Activate

参数应始终为字符串形式,并且应为完整的文件名(带有扩展名)。尽管数字(索引)也被接受,但是您不能确定哪个索引指向哪个工作簿。更好的是,将其分配给变量。
Dim otherWB As Workbook
Set otherWB = Workbooks(Filename)
'Set otherWB = Workbooks(Filename & ".xls") '~~> for second scenario above

编辑1:从注释开始,如果Filename包含完整路径,则可能可行。
Dim Filename1 As String
Filename1 = Split(Filename, "\")(UBound(Split(Filename, "\")))
Workbooks(Filename1).Activate

关于vba - 如何激活使用VBA中的工作簿名称打开的工作簿,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29093238/

10-12 02:07