使用VBA隐藏/取消隐藏行 – 多个范围

我想通过点击一个button来隐藏/取消隐藏行。 我已经通过使用下面的代码实现了这一点:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) omrade = ActiveCell.Row + 4 & ":" & ActiveCell.Row + 37 If Rows(omrade).EntireRow.Hidden = True Then Rows(omrade).EntireRow.Hidden = False Else Rows(omrade).EntireRow.Hidden = True End If Exit Sub End Sub 

它可以工作,如果单元格超链接到同一个单元格(例如单元格D5超链接到D5 – 这将切换行9 – 42的可见性)。

但是,我有多个链接(> 100),我不想在超链接中手动input每个单元格引用。 我已经尝试使用超链接公式制作dynamic超链接,但是我的VBA代码不能运行。

编辑:试图澄清我的问题。

试试这个:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim rngHyperlinkCell As Range Dim omrade As Range Set rngHyperlinkCell = Target.Range Set omrade = rngHyperlinkCell.Parent.Rows(rngHyperlinkCell.Row + 4 & ":" & rngHyperlinkCell.Row + 37) If omrade.EntireRow.Hidden = True Then omrade.EntireRow.Hidden = False Else omrade.EntireRow.Hidden = True End If Exit Sub End Sub 

尝试这样的事情:

 Rows(omrade).EntireRow.Hidden = not Rows(omrade).EntireRow.Hidden 

这将隐藏,如果可见和取消隐藏,如果隐藏。

我想知道是否发布这个,因为它和@Robin非常相似,并且使用@Vityata使用的隐藏:

 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim subAddress As Range Dim omrade As Range 'Set subAddress = Range(Target.subAddress) 'Where the link looks at. Set subAddress = Target.Range 'Where the link is. With subAddress.Parent Set omrade = .Range(.Cells(subAddress.Row + 4, 1), .Cells(subAddress.Row + 37, 1)) omrade.EntireRow.Hidden = Not omrade.EntireRow.Hidden End With End Sub