Для начала я бы посоветовал использовать структуру Select Case
и убедиться, что, по крайней мере, используется ссылка Worksheet
, чтобы избежать неявного ActiveSheet
. Вы никогда не знаете, откуда ваш код может быть получен.
Sub Test()
Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Sheet1")
With ws
Select Case .Range("K2").Value
Case "Technical"
Select Case CLng(Right(.Range("J2").Value, 2))
Case 23, 24
.Range("U2").Value = "Core Team Trained"
Case 25, 26, 30
.Range("U2").Value = "PL Trained"
End Select
Case "Management"
Select Case CLng(Right(.Range("J2").Value, 2))
Case 25, 26, 30, 31, 40
.Range("U2").Value = "Champion Trained"
End Select
Case "Project Mgm"
Select Case CLng(Right(.Range("J2").Value, 2))
Case 21 - 23
.Range("U2").Value = "CORE TEAM MEMBER TRAINED"
Case 24
.Range("U2").Value = "PL TRAINED"
Case 25
.Range("U2").Value = "PL CERTIFIED"
Case 26
.Range("U2").Value = "SME TRAINED"
Case 30
.Range("U2").Value = "SME CERTIFIED"
End Select
End Select
End With
End Sub
Не самый короткий код, но ясность имеет большое значение.