VBA:隐藏单元格值与目标行单元格值匹配的行?

时间:2016-10-06 16:51:42

标签: excel vba

我有一个像这样的电子表格:

A        B          C          D          E           F        G
12       Row1                                                  Click to Hide
12       Row2                                                  Click to Hide
5        Row3                                                  Click to Hide
4        Row4                                                  Click to Hide
12       Row5                                                  Click to Hide

当用户点击'点击隐藏'我试图隐藏A列中与该目标行匹配的所有行。

例如,如果用户点击了“点击隐藏”。在第1行的第G列中。如果数字是12,则Row1,Row2和Row5将被隐藏 - 因为这些都具有相同的数字。

然而,为了使问题复杂化,我不想隐藏目标行。这意味着Row1不会被隐藏,而只会隐藏Row2和Row5。

这是我的代码:

'Hide ROws


 If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Value = "Click to Hide" Then
        valu = Cells(Target.Row, 1).Value
        For i = 1 To ActiveSheet.UsedRange.Rows.Count
            If Cells(i, 1).Value = valu Then
                Cells(i, 1).EntireRow.Hidden = True
            Else
                Cells(i, 1).EntireRow.Hidden = False
            End If
        Next i
        Target.EntireRow.Hidden = False
    Else
        Rows.Hidden = False
    End If

代码似乎不起作用,它隐藏了我的电子表格顶部的其他行,这些行是空的,没有匹配的数字。我不确定为什么会这样,请有人告诉我哪里出错了?

提前致谢

1 个答案:

答案 0 :(得分:0)

Sub HideRows()
    BeginRow = 1
    EndRow = 100
    ChkCol = 1

    For RowCnt = BeginRow To EndRow
        If Cells(RowCnt, ChkCol).Value = 12 Then
            Cells(RowCnt, ChkCol).EntireRow.Hidden = True
        End If
    Next RowCnt
End Sub