使用 IF

使用 IF

从以下代码开始:

Dim lastRow As Long
    With ActiveSheet
       lastRow = .Range("C" & .Rows.Count).End(xlUp).Row
    End With

Dim HeadCell As Range
    For Each HeadCell In Range("C1:C" & lastRow)

    If Len(HeadCell) < 6 And Len(HeadCell) > 1 Then

        HeadCell.Select

        With Selection.Font
            .Bold = True
            .Underline = xlUnderlineStyleSingle
        End With

    Else
    End If

    ActiveCell.Offset(1, 0).Select
    Next

到目前为止,它的效果和我预期的一样。它会扫描我的工作表“C”列,查找特定长度的值,然后相应地格式化它。我希望它做的是检查单元格是否是任何其他特定值,如果是,则忽略格式化要求并像往常一样转到下一个单元格。

我认为添加嵌入式 For 循环可以实现这一点,但我的逻辑一定是错的,因为它基本上完全忽略了 For 循环并正常运行它。

If Len(HeadCell) < 6 And Len(HeadCell) > 1 Then
        For i = 1 To 99
            If HeadCell = i Then
                Exit For
            End If
        Next i

我实际上是想忽略值等于 1 到 99 的单元格。这不是拼写错误。如果 HeadCell 的值等于 1 到 99,则忽略原始条件的格式部分并转到下一个单元格。

答案1

有两种方法可以解决此问题:

使用 IF

只需在 for 循环中添加第二个 if 语句并将代码放在该 if 中即可。(查看下面代码中的 2 行以了解需要添加的内容)

你的 for 循环代码看起来会像这样:

For Each HeadCell In Range("C1:C" & lastRow)

If Len(HeadCell) < 6 And Len(HeadCell) > 1 Then
   if HeadCell <= 0 OR HeadCell >= 100 then  
        HeadCell.Select

        With Selection.Font
            .Bold = True
            .Underline = xlUnderlineStyleSingle
        End With
   End If
Else
End If

ActiveCell.Offset(1, 0).Select
Next

继续 for 循环

您尝试继续第一个循环,但 exit for 只是退出该循环。您正在寻找Next nextcell

相关内容