如何将Sheet 1的动态单元格链接至Sheet 2并定位相同ID
实现Sheet1 ID跳转并选中Sheet2所有匹配单元格的方法
Excel原生超链接只能跳转至单个位置,要实现点击ID后选中Sheet2所有匹配单元格的需求,得用VBA宏来完成,步骤如下:
- 打开Excel,按
Alt+F11打开VBA编辑器 - 在左侧工程窗口找到你的工作簿,双击Sheet1的代码窗口,粘贴以下代码:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim targetID As String Dim ws2 As Worksheet Dim foundCell As Range Dim firstFound As String ' 获取点击的ID值 targetID = Target.Range.Value Set ws2 = ThisWorkbook.Worksheets("Sheet2") ' 在Sheet2中查找第一个匹配的ID Set foundCell = ws2.Cells.Find(What:=targetID, LookIn:=xlValues, LookAt:=xlWhole) If Not foundCell Is Nothing Then firstFound = foundCell.Address ' 选中第一个匹配单元格 foundCell.Select ' 继续查找并选中后续匹配的单元格 Do Set foundCell = ws2.Cells.FindNext(foundCell) If foundCell.Address <> firstFound Then Union(Selection, foundCell).Select End If Loop While Not foundCell Is Nothing And foundCell.Address <> firstFound ' 切换到Sheet2 ws2.Activate Else MsgBox "Sheet2中未找到该ID:" & targetID End If End Sub
- 回到Sheet1,给需要设置跳转的ID单元格添加超链接:
- 选中ID单元格,右键选择超链接
- 在弹出窗口中选择本文档中的位置,选择当前单元格自身(或本工作表任意单元格),点击确定
- 现在点击Sheet1中的ID超链接,就会自动跳转到Sheet2并选中所有匹配的ID单元格
注意事项:
- 若你的Sheet2名称不是"Sheet2",把代码里的
"Sheet2"改成实际工作表名称 - 保存工作簿时要选择
.xlsm格式(启用宏的工作簿),否则宏会失效
内容的提问来源于stack exchange,提问作者Shiela
相关产品推荐
相关产品推荐

