
Следующая формула работает хорошоеслиЯ определяю каждую ячейку (снова и снова), но мне нужен цикл, который будет проходить по столбцам A и B для сотен строк. Я пытался и просто не могу написать цикл, который запускается и останавливается, когда достигает пустой ячейки внизу. Это должно работать на нескольких электронных таблицах с разными именами вкладок.
Пример того, что работает сейчас: [Я хочу иметь одну формулу, которая будет выполнять цикл] В настоящее время я записал это на 100 строк, так как я не могу заставить работать цикл. :-(
Sub Hidelines()
If Range("A1").Value = "No" Then
Rows("1:1").EntireRow.Hidden = True
ElseIf Range("B1").Value = "NEVER" Then
Rows("1:1").EntireRow.Hidden = True
End If
If Range("A2").Value = "No" Then
Rows("2:2").EntireRow.Hidden = True
ElseIf Range("B2").Value = "NEVER" Then
Rows("2:2").EntireRow.Hidden = True
End If
If Range("A3").Value = "No" Then
Range("E3").Select
Rows("3:3").EntireRow.Hidden = True
ElseIf Range("B3").Value = "NEVER" Then
Rows("3:3").EntireRow.Hidden = True
End If
End Sub
решение1
Sub HideRows()
Dim RowCount: RowCount = 1 ' Row you wish to start from
Dim ColIndex: ColIndex = 1 ' Column to look within (A = 1) - Never will be in ColIndex + 1
Do
If (LCase(Cells(RowCount, ColIndex).Value) = "no") Then
Cells(RowCount, ColIndex).EntireRow.Hidden = True
ElseIf (LCase(Cells(RowCount, ColIndex + 1).Value) = "never") Then
Cells(RowCount, ColIndex).EntireRow.Hidden = True
End If
RowCount = RowCount + 1
Loop Until IsEmpty(Cells(RowCount, ColIndex).Value)
End Sub
Это будет продолжаться вниз по каждой строке, пока не достигнет пустой ячейки в столбце ColIndex
. Он будет без учета регистра искать тот же столбец для No
или столбец справа от него для Never
и скрывать строку, если это так.