我正在尝试隐藏单元格文本长度等于零的行。 目前使用以下代码,但由于逐行浏览每一行,因此速度极慢:
Sub HideRows()
Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
Application.DisplayAlerts = False
Dim cell As Range
For Each cell In Range("B1:B1000")
If Not IsEmpty(cell) Then
If Len(cell.Text) = 0 Then
cell.EntireRow.Hidden = True
End If
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
我在其他地方看到过你可以使用
Rng.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
但是因为我的细胞不是空白,只是给你一个公式的结果,我不认为这对我有用。
还有其他方法可以提高此流程的效率吗?
答案 0 :(得分:1)
您可以在一个操作中隐藏所有行,如下所示:
Sub hideRows()
Dim rng As Range
For Each cell In Range("B1:B1000")
If Len(cell.Text) = 0 Then
If rng Is Nothing Then
Set rng = cell
Else
Set rng = Union(rng, cell)
End If
End If
Next
rng.EntireRow.Hidden = True
End Sub