You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过单元格值选择工作表?VBA代码执行报错求助

问题分析与解决

你的代码报错核心原因有两点:

  1. 变量loc是字符串类型,字符串不存在.Name属性,你直接用loc作为工作表名称参数即可,无需额外调用.Name。
  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:17:33