Начиная со следующего кода:
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, игнорируйте форматирующую часть исходного условного выражения и переходите к следующей ячейке.