Excel vba隐藏行直到值

时间:2016-06-03 16:47:17

标签: excel vba macros

我想在Excel中隐藏第7行到第X行,其中X是第A列中第一个值实例上方的第6行。

谷歌似乎想出了一些看起来过于复杂的事情。

到目前为止我所做的是基本的:

findAndModify

在我的Sub中。我只需要弄清楚如何将62更改为通常在60左右的可变单元格,但并不总是62的确切值。

3 个答案:

答案 0 :(得分:1)

尽可能避免使用Select

strValueToFind = "What ever the value you are trying to find in column A is"
With Sheets("Sheet1")
    'Find the row containing the value
    intFoundRow = .Range("A:A").Find(What:= strValueToFind, _
        LookIn:=xlValues, _
        LookAt:=xlWhole).Row
    'Now hide Rows 7 through 6 above the row we found
    .Rows("7:" & intFoundRow - 6).Hidden = True
End With

希望这不是太复杂。 :)

答案 1 :(得分:1)

您的叙述说'排在第6行' ,您的代码在' 之前显示' 3行。我通常相信代码。这很重要,因为所涉及的数学并确保您不要试图隐藏第7行上方的行。

Dim rw As Variant
rw = Application.Match(Chr(42), Range("A8:A1048576"), 0)
If Not IsError(rw) Then
    rw = Application.Max(rw + 4, 7)
    Range("A7:A" & rw).EntireRow.Hidden = True
End If

答案 2 :(得分:0)

假设我们从:

开始

enter image description here

我们希望隐藏第一次出现的“幸福”之前的所有行 7 到6行。运行这个:

Sub FindAndHide()
    Dim rng As Range

    Set rng = Range("A:A")
    Range(Cells(7, 1), rng.Find(What:="happiness", after:=rng(7)).Offset(-6, 0)).EntireRow.Hidden = True
End Sub

将产生:

enter image description here