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

如何通过VBA基于单元格值切换至对应名称的工作表

实现指定单元格值变化时自动切换对应工作表的VBA宏

实现步骤

  • 打开包含指定触发单元格的工作表,右键点击工作表标签,选择「查看代码」
  • 在弹出的VBA编辑器窗口中,粘贴以下代码(注意修改代码里的指定单元格地址,比如把Range("A1")改成你实际使用的单元格)
  • 保存文件为**启用宏的工作簿(.xlsm)**格式,否则宏无法运行

VBA代码示例

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 指定触发切换的单元格,这里改成你实际需要的单元格地址
    Dim triggerCell As Range
    Set triggerCell = Me.Range("A1")
    
    ' 判断是否是指定单元格发生变化
    If Not Intersect(Target, triggerCell) Is Nothing Then
        Dim targetSheetName As String
        targetSheetName = Trim(triggerCell.Value)
        
        ' 避免空值或无效工作表名导致报错
        If targetSheetName <> "" Then
            On Error Resume Next
            ThisWorkbook.Sheets(targetSheetName).Activate
            On Error GoTo 0
            
            ' 可选:如果找不到对应工作表,弹出提示
            If Err.Number <> 0 Then
                MsgBox "找不到名为 '" & targetSheetName & "' 的工作表", vbExclamation
            End If
        End If
    End If
End Sub

代码说明

  • Worksheet_Change是工作表专属的事件过程,只有当前工作表的单元格内容发生改变时才会触发
  • Intersect(Target, triggerCell)用来判断变化的单元格是否是我们指定的触发单元格
  • Trim(targetSheetName)用来去除单元格内容的前后空格,避免因为空格导致匹配失败
  • On Error Resume Next和On Error GoTo 0用来处理找不到对应工作表的情况,防止宏报错中断

内容的提问来源于stack exchange,提问作者FERNANDO SORIANO COLADO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 18:43:11