Ваш код уже поддерживает это ... вам просто нужно другое выражение для вашего if.
bNotModelType = True
checking_type = "ModelType"
Do While bNotModelType
'changing from value equals to instr so you can find partial matches
If Instr(Cells(j, 1).Value,checking_type) Then 'InStr() this will do a boolean check if it's in the string
Model_Type_Row = j
bNotModelType = False
Else 'added here
'add your code when not met.
End If
j = j + 1
'If Model_Type_Row = 0 Then MsgBox ("NADA") 'if you want within loop, do this
'Model_Type_Row = 0
Loop
If Model_Type_Row = 0 Then MsgBox ("NADA") 'moved msgbox out of loop
Edit1:
Вопрос ... что не так с использованием .Find()
в столбце?
if iserror(Columns(1).Find(What:=checking_type, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False))
'when there is an error, do this
MsgBox ("NADA")
else
'do something when the row is found
Model_Type_Row = Columns(1).Find(What:=checking_type, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Row
End if
Edit2:
Показано перемещение msgbox за пределы цикла, согласно комментарию lizard6.