lak*_*esh 4 excel vba excel-vba
我已经打开了一个工作簿,但我正在运行另一个工作簿中的宏.我想使用它的名称激活第一个工作簿.
代码:
FileName = input_path_1 & input_file_1
Workbooks(FileName.xls).Activate
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,它给了我"下标超出范围"错误.我该如何解决?
检查您的变量是否Filename包含正确的文件名.(如Sample.xls)
同时检查input_path_1并input_file_1有正确的价值观.
如果他们有它应该是这样的:
Workbooks(Filename).Activate
Run Code Online (Sandbox Code Playgroud)
现在,如果你需要附加扩展名(例如,Filename值只是Sample):
Workbooks(Filename & ".xls").Activate
Run Code Online (Sandbox Code Playgroud)
参数应始终采用字符串形式,并且应该是完整的文件名(带扩展名).虽然也接受数字(索引),但您无法确定哪个索引引用了哪个工作簿.更好的是,将其分配给变量.
Dim otherWB As Workbook
Set otherWB = Workbooks(Filename)
'Set otherWB = Workbooks(Filename & ".xls") '~~> for second scenario above
Run Code Online (Sandbox Code Playgroud)
Edit1:从评论中,如果Filename包含完整路径,那么这可能会起作用.
Dim Filename1 As String
Filename1 = Split(Filename, "\")(UBound(Split(Filename, "\")))
Workbooks(Filename1).Activate
Run Code Online (Sandbox Code Playgroud)