超链接指向隐藏行

Hyperlink directs to hidden row

我有一个包含 2 sheet 的工作簿。 Sheet 1 具有指向 Sheet 2 中多个不同单元格的超链接。问题是 Sheet 2 中的过滤器会隐藏行,因此当您尝试从 Sheet 1,行隐藏,看不到目标。我正在尝试弄清楚如何执行以下操作:

点击超链接后它可以保持不隐藏状态,我对此很满意。在过去的几天里,我一直在努力解决这个问题,但没有取得任何成功。我试过 "Followhyperlink" 函数,但我认为这为时已晚 - 它已经跟随了超链接,因此此时取消隐藏该行为时已晚。

有什么建议吗?我被难住了!

FollowHyperlink 确实是要使用的事件处理程序。将此代码放入 Sheet1 的 worksheet 模块中:

Option Explicit

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Dim hyperlinkParts() As String

If ((Target.Type = msoHyperlinkRange) And (Target.SubAddress <> "")) Then
    If (InStr(Target.SubAddress, "!") > 0) Then
        hyperlinkParts = Split(Target.SubAddress, "!")

        If ((Left$(hyperlinkParts(0), 1) = "'") And (Right$(hyperlinkParts(0), 1) = "'")) Then
            hyperlinkParts(0) = Mid$(hyperlinkParts(0), 2, Len(hyperlinkParts(0)) - 2)
        End If

        Worksheets(hyperlinkParts(0)).Range(hyperlinkParts(1)).EntireRow.Hidden = False
    End If
End If

End Sub

这会检查超链接是否对应于 Range 对象,然后将目标地址拆分为 sheet 名称和特定单元格。然后取消隐藏对应于目标地址的行。

对于指向未指定特定单元格的外部工作簿的超链接,需要检查子地址是否为空

编辑: 这种方法不适用于指向命名范围的超链接,我已经更改了代码以避免收到有关此类超链接的错误消息

edit2; 修改代码以处理工作sheet 名称包含以前导致错误的空格