循环向下列直到空白单元格

循环向下列直到空白单元格

以下公式很有效如果我定义了每个单元格(一遍又一遍),但我需要一个循环来运行数百行的 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,如果是,则隐藏该行。

相关内容