我不是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
我希望有人可以帮助我。
提前致谢。
答案 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