如何通过单元格值选择工作表?VBA代码执行报错求助
问题分析与解决
你的代码报错核心原因有两点:
- 变量
loc是字符串类型,字符串不存在.Name属性,你直接用loc作为工作表名称参数即可,无需额外调用.Name。 std作为工作表对象,需要明确引用,避免因未定义导致的对象引用错误。
修正后的基础代码
Sub selAct() Dim loc As String ' 明确引用名为"std"的工作表,避免依赖默认ActiveSheet的不确定性 loc = ThisWorkbook.Worksheets("std").Range("B2").Value ' 直接传入字符串变量loc作为工作表名称 ThisWorkbook.Worksheets(loc).Select End Sub
进阶优化(添加错误处理)
如果单元格内的名称不存在对应工作表,原代码会直接报错,可加入错误处理提升容错性:
Sub selAct() Dim loc As String Dim targetSheet As Worksheet loc = ThisWorkbook.Worksheets("std").Range("B2").Value On Error Resume Next Set targetSheet = ThisWorkbook.Worksheets(loc) On Error GoTo 0 If Not targetSheet Is Nothing Then targetSheet.Select Else MsgBox "找不到名为""" & loc & """的工作表" End If End Sub
内容的提问来源于stack exchange,提问作者Astuti Roro
相关产品推荐
相关产品推荐

