如何激活使用VBA中工作簿的名称打开的工作簿

我已经打开了一个工作簿,但正在运行另一个工作簿的macros。 我想用它的名字激活第一个工作簿。

代码:

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

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

检查你的variablesFilename包含正确的文件名。 (例如Sample.xls
同时检查input_path_1input_file_1是否有正确的值。
如果他们有它应该是这样的:

 Workbooks(Filename).Activate 

现在,如果你需要附加扩展名(例如Filename值就是Sample ):

 Workbooks(Filename & ".xls").Activate 

参数应该总是以string的forms,并且应该是完整的文件名(带有扩展名)。 尽pipe数字(索引)也被接受,但您不能确定哪个索引指向哪个工作簿。 更好的是,把它分配给一个variables。

 Dim otherWB As Workbook Set otherWB = Workbooks(Filename) 'Set otherWB = Workbooks(Filename & ".xls") '~~> for second scenario above 

编辑1:从注释,如果Filename包含完整path,那么这可能工作。

 Dim Filename1 As String Filename1 = Split(Filename, "\")(UBound(Split(Filename, "\"))) Workbooks(Filename1).Activate