Есть такая конструкция:
Код
For i = 9 To 75
If Cells(i, 13) >= Cells(8, 13) And _
Cells(i, 14) >= Cells(8, 14) And _
Cells(i, 15) >= Cells(8, 15) And _
Cells(i, 16) >= Cells(8, 16) And _
Cells(i, 17) >= Cells(8, 17) And _
Cells(i, 18) >= Cells(8, 18) And _
Cells(i, 19) >= Cells(8, 19) And _
Cells(i, 20) >= Cells(8, 20) And _
Cells(i, 21) >= Cells(8, 21) And _
Cells(i, 22) >= Cells(8, 22) And _
Cells(i, 23) >= Cells(8, 23) And _
Cells(i, 24) >= Cells(8, 24) And _
Cells(i, 25) >= Cells(8, 25) And _
Cells(i, 26) >= Cells(8, 26) And _
Cells(i, 27) >= Cells(8, 27) And _
Cells(i, 28) >= Cells(8, 28) And _
Cells(i, 29) >= Cells(8, 29) Then
Rows(i).EntireRow.Hidden = False
End If
Next i
Замечательно работает, но хотелось бы привести это дело к более удобному представлению. Можете что-нибудь предложить? Ещё один уровень цикла for тут не подходит, т.к. связка на логическом "И".
Макрос
Sub Макрос()
Dim Найдено As Boolean
Dim i As Long, j As Long
For i = 9 To 75
Найдено = False
For j = 13 To 29
If Cells(i, j) < Cells(8, j) Then
Найдено = True
Exit For
End If
Next j
If Найдено = False Then
Rows(i).EntireRow.Hidden = False
End If
Next i
End Sub