使用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