Код VBA
Sub loopchange()
'select the blank column
Dim level As String
Range("AF2").Select
Do
'move to A2 cell'
ActiveCell.Offset(0, -31).Select
'find out which is level2
If (ActiveCell.Value = "..2") Then
'move to column AD
ActiveCell.Offset(0, 28).Select
'Store the first 4 digit for level 2
level = Left(ActiveCell.Value, 4)
'Move to the column A3
ActiveCell.Offset(1, -28).Select
End If
MsgBox Left(ActiveCell.Value, 4)
'compare whether it's level 3(VBA don't detect this)
If (ActiveCell.Value = "...3") Then
'move to the column AD
ActiveCell.Offset(0, 28).Select
'compare the stored first 4 digit in level 2 known as level to first
'4 digit of current cell
If (level = Left(ActiveCell.Value, 4)) Then
'move to column AF
ActiveCell.Offset(0, 2).Select
'input the word NO CTH
ActiveCell.Value = "No CTH"
End If
End If
Loop Until IsEmpty(ActiveCell.Offset(0, -31))
End Sub
Мое обоснование состоит в том, чтобы сравнить первые четыре цифры уровня 2(.. 2) с первыми четырьмя цифрами уровня 3(... 3) и ввести мир "Без CTH" в столбец AF3, используя цикл Do.
(PS мой код застрял на "Если (ActiveCell.Value = "... 3") Тогда "код vba не запускает это и сразу переходит к выражению End if)