Excel如何用VBA或超链接通过活动单元格值跳转至同工作簿其他工作表同值单元格
该需求可直接实现,以下提供两种成熟方案,可根据自身使用习惯选择:
方案一:免VBA超链接法,无需编码即可实现
适合不想调试宏代码的场景,操作步骤如下:
- 先确认两个工作表的SKU列位置,假设MASTER表的SKU存储在A列,SUBSTITUTE表的替代品SKU存储在B列,两表首行均为表头
- 在SUBSTITUTE表的替代品SKU列旁新增一列,列名设为「跳转入口」,首个数据单元格输入公式:
=HYPERLINK("#MASTER!A"&MATCH(B2,MASTER!A:A,0),"跳转对应SKU") - 公式下拉填充所有数据行即可,点击对应单元格的链接会直接跳转到MASTER表匹配的SKU单元格,且自动将该单元格设为活动状态
方案二:VBA选中自动跳转法,符合你描述的选中即触发需求
无需额外新增列,选中SKU单元格就自动跳转,操作步骤如下:
- 按快捷键
Alt+F11打开VBA编辑器 - 在左侧工程窗口找到
SUBSTITUTE工作表,双击打开该表的代码编辑窗口 - 粘贴以下代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 限定触发范围:仅选中替代品SKU列单个非空单元格时触发,此处2对应B列,可自行修改为实际列号 If Target.Column <> 2 Or Target.Cells.Count > 1 Or Target.Value = "" Then Exit Sub Dim skuVal As String Dim matchRng As Range skuVal = Target.Value ' 到MASTER表SKU列查找匹配项,此处A:A为MASTER表SKU所在列,可自行修改 Sheets("MASTER").Activate Set matchRng = Sheets("MASTER").Columns("A:A").Find(What:=skuVal, LookIn:=xlValues, LookAt:=xlWhole) If Not matchRng Is Nothing Then matchRng.Select Else MsgBox "未匹配到对应SKU:" & skuVal, vbInformation End If End Sub
- 按实际列号修改代码中的两个列参数后保存,将文件另存为
*.xlsm启用宏的工作簿格式即可正常使用
内容的提问来源于stack exchange,提问作者Terry McC
相关产品推荐
相关产品推荐

