В вашем вопросе #2, 3, 4, 5
все следуют схожей логике.
Первые i
петли займутся #1
. Следующая часть кода занимается #2
. Вы можете просто скопировать / вставить нижнюю часть и изменить значения теста, чтобы выполнить запрос.
Option Explicit
Sub HideMe()
Dim i As Integer
With ThisWorkbook.Sheets("Sheet3")
For i = 11 To 60
.Range("A" & i).EntireRow.Hidden = .Range("A" & i) = vbNullString
Next i
'Repeat this portion for you other ranges that follow the same rules
If .Range("A" & 71) = vbNullString Then
.Range("A71:A120").EntireRow.Hidden = True
Else
For i = 72 To 120
.Range("A" & i).EntireRow.Hidden = .Range("A" & i) = vbNullString
Next i
End If
End With
End Sub
Это можно улучшить с помощью
A) Используйте цикл For Each
вместо цикла For i
Б) Вместо того, чтобы скрывать строки одну за другой, добавьте их в коллекцию строк как (Union
) и скройте Union
все сразу