Excel VBA:如何根据超链接跳转的目标工作表选择性执行代码?
完全可以通过判断超链接的目标工作表名称实现需求,你只需要解析Hyperlink对象的SubAddress属性提取工作表名即可,以下是完整可直接使用的代码:
Option Explicit Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim targetSheetName As String Dim addrSplitArr As Variant ' 拆分超链接目标地址,!前面的内容就是工作表名 addrSplitArr = Split(Target.SubAddress, "!") If UBound(addrSplitArr) < 0 Then Exit Sub ' 无有效跳转目标时直接退出 targetSheetName = addrSplitArr(0) ' 清理特殊字符:带空格/特殊符号的表名会被自动包裹单引号,跨工作簿链接会有方括号前缀,此处统一清理 targetSheetName = Replace(Replace(Replace(targetSheetName, "'", ""), "[", ""), "]", "") ' 匹配到指定工作表时直接退出,不执行后续定位逻辑 If targetSheetName = "my target sheet" Then Exit Sub ' 原有定位逻辑 ActiveWindow.ScrollRow = ActiveCell.Row ActiveWindow.ScrollColumn = ActiveCell.Column End Sub
补充说明
- 请将代码里的
my target sheet替换为你实际需要排除的工作表的完整名称,VBA默认字符串匹配不区分大小写 - 如果需要同时排除多个工作表,可以修改判断条件为:
If targetSheetName = "表A" Or targetSheetName = "表B" Or targetSheetName = "表C" Then Exit Sub - 代码兼容指向当前工作簿、其他工作簿的超链接场景,无需额外调整
内容的提问来源于stack exchange,提问作者fat fantasma
相关产品推荐
相关产品推荐

