我可以让 VBA 正常工作,但我的电子表格在没有数据的情况下有 20MB。我想要做的是找到单元格第一次为空白的时间,然后从该位置开始一次隐藏每一行直到最后。这是我的代码:
Dim rl As Range
For Each rl In Sheets("Results").Range("$A$4:$A$800")
If rl.Value = "" Then
r1.EntireRow.Hidden = True
Else: rl.EntireRow.Hidden = False
End If
Next rl
因此在这个例子中,如果 r1.value =“”,我想从该行一直隐藏到第 800 行。有什么建议吗?
答案1
为了使其更快尝试这个:
Sub Test()
Dim i As Long
For i = 4 To 800
If Sheets("Results").Cells(i, 1).Value = "" Then
Rows(i & ":" & Rows.Count).EntireRow.Hidden = True
Rows("1:" & i - 1).EntireRow.Hidden = False
Exit Sub
End If
Next
End Sub
它检查 A 行中第一个没有文本的单元格,并隐藏其下方的所有行(包括找到的单元格),并使其上方的所有单元格可见(不包括找到的单元格),
这也会接受单元格为“无文本”,公式的结果为“”
仅隐藏从真正的空单元格更改开始
If Sheets("Results").Cells(i, 1).Value = "" Then
到
If isempty(Sheets("Results").Cells(i, 1).Value) Then
也只隐藏到第 800 行更改
Rows(i & ":" & Rows.Count).EntireRow.Hidden = True
到
Rows(i & ":800").EntireRow.Hidden = True