Excel VBA - 如果上一个单元格包含文本,则显示下一个单元格

时间:2015-10-28 08:34:16

标签: excel vba excel-vba

我不是Excel VBA中的天才,所以这是我的问题:

我有一张Excel表格,里面有隐藏的行。

例如:只要单元格A1为空,就保持行(A2)隐藏。当A1包含文本时显示下一行(A2)。

我的方法如下:

    Sub showRows_Klicken()

    Dim rng As Range

        For Each rng In Range(Cells(1, 1), Cells(65536, 1).End(xlUp))       
              If LCase(rng) = "text"    
                  Then                                            
                        rng.EntireRow.Hidden = False
              Else

              End If
        Next rng

     End Sub

我希望有人可以帮助我。

提前致谢。

3 个答案:

答案 0 :(得分:0)

我试过这段代码。为我工作。请试一试

Sub Macro1()

    If Range("A1").Value = vbNullString Then
        Columns("B:B").EntireColumn.Hidden = True
    ElseIf Not IsEmpty(Range("A1").Value) Then
        Columns("B:B").EntireColumn.Hidden = False
    End If

End Sub

答案 1 :(得分:0)

Hidden属性似乎有效。我稍微改变了一下这个功能,以便根据行 i 设置下一行( i + 1 )可见。它现在只检查每一行,否则你可以隐藏所有行(如果什么都没有),你将无法设置任何"文本"以便下一行被取消隐藏:

Sub showRows_Klicken()
'loop all rows
For i = 1 To 65536 Step 2
    'check if has string "text" and set hidden
    If LCase(Cells(i, 1)) = "text" Then
        Range(Cells(i + 1, 1), Cells(i + 1, 1)).EntireRow.Hidden = False
    Else
        Range(Cells(i + 1, 1), Cells(i + 1, 1)).EntireRow.Hidden = True
    End If
Next i
End Sub

答案 2 :(得分:0)

感谢您的帮助,我稍微更改了代码,现在它适用于我:

         Sub Schaltfläche259_Klicken()
            If Range("A1").Value = vbNullString Then
                Rows("2").EntireRow.Hidden = True
            ElseIf Not IsEmpty(Range("A1").Value) Then
                Rows("2").EntireRow.Hidden = False
            End If

         End Sub