如果单元格值为空,我想使用 VBA 隐藏 Excel 2010 中的行

如果单元格值为空,我想使用 VBA 隐藏 Excel 2010 中的行

我可以让 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

相关内容