Починаючи з наступного коду:
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, ігноруйте частину форматування початкового умовного і перейдіть до наступної комірки.