【问题标题】:Hide/Unhide rows with VBA - multiple ranges使用 VBA 隐藏/取消隐藏行 - 多个范围
【发布时间】:2016-12-12 13:14:19
【问题描述】:

我想通过单击按钮来隐藏/取消隐藏行。我通过使用以下代码实现了这一点:

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),我不想在超链接中手动输入每个单元格引用。我曾尝试使用超链接公式制作动态超链接,但我的 VBA 代码将无法运行。

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

【问题讨论】:

  • 不清楚您在问什么 - 如果我单击单元格 A1 中的超链接,它是否应该切换第 5 行到第 38 行的可见性?如果我单击单元格B2 中的超链接,它是否应该切换第 6 行到第 39 行的可见性?等等?

标签: vba excel hyperlink


【解决方案1】:

试试这个:

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

End Sub

【讨论】:

  • 这解决了我的问题!只是一个小问题 - 如何选择隐藏/取消隐藏后单击的同一个单元格?如果它超链接到 A1 - 选择了 A1 单元格,并且我不知道我在工作表中的位置。
  • 解决了,添加如下代码:ActiveSheet.Cells(rngHyperlinkCell.Row, rngHyperlinkCell.Column).Select
【解决方案2】:

试试这样的:

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

如果可见则隐藏,如果隐藏则取消隐藏。

【讨论】:

  • 这将简化我的代码 - 但是,我希望有多个链接来根据该链接的位置切换不同的行集。而且,我不想在每个链接中手动输入单元格引用。
【解决方案3】:

我想知道是否要发布这个,因为它与@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

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多