VBA如何根据其他工作表单元格值选择目标工作表?
解决VBA中根据单元格值选择工作表的问题
你的问题出在代码里把变量MySheet当成字符串常量用了,Sheets("MySheet")会直接去找名为"MySheet"的工作表,而不是你从L41单元格获取的目标工作表名称。
正确的VBA写法很简单,直接使用变量名即可,不需要像PHP那样用点号拼接:
Dim MySheet As String Dim wks As Worksheet ' 从Template工作表的L41单元格读取目标工作表名称 MySheet = Sheets("Template").Range("L41").Value ' 通过变量引用对应的工作表 Set wks = Sheets(MySheet)
如果需要避免因单元格值错误(比如不存在对应工作表)导致程序崩溃,可以加一段容错判断:
Dim MySheet As String Dim wks As Worksheet MySheet = Sheets("Template").Range("L41").Value ' 尝试引用工作表,捕获不存在的情况 On Error Resume Next Set wks = Sheets(MySheet) On Error GoTo 0 If wks Is Nothing Then MsgBox "工作表 '" & MySheet & "' 不存在,请检查L41单元格的值!" Else ' 这里可以写找到工作表后的操作,比如激活 wks.Activate End If
内容的提问来源于stack exchange,提问作者Interactive
相关产品推荐
相关产品推荐

