2015-11-10 2 views
0

Я хотел бы создать цикл с функцией if. Условие для этого, если funtion должно быть активной ячейкой, содержащей «*» или нет.Вернуть True/False Boolean из функции InStr? vba

-Это как funtion не работает, потому что подобная функция не распознает цифры «*», потому что она использует их для определения частей строк.

  • Я думаю, что сочетание регулярного, если funtion с функцией InStr может работать, но я не уверен, как их объединить.

Как вернуть True/False Boolean из функции InStr?

ответ

1
Do While ActiveCell.Value <>"" 
    If InStr(ActiveCell.Value, "*") Then 
     MsgBox("Cell contains at least one "*") 
     Else: 
    End if 
    ActiveCell.Offset(1,0) 
Loop 
+3

fwiw, я обычно добавляю обертку CBool ​​(например, 'Если CBool ​​(InStr (ActiveCell.Value," * ")) Then '), чтобы напомнить себе, что [ InStr] (https://msdn.microsoft.com/en-us/library/8460tsh1%28v=vs.90%29.aspx) используется как логическое. – Jeeped

0
Do While ActiveCell.Value <> "" 
    If InStr(ActiveCell.Value, "*") <> 0 Then 
     MsgBox("Cell contains at least one "*") 
    Else 
     MsgBox("Cell does not contain at least one "*") 
    End if 
    ActiveCell.Offset(1,0) 
Loop 

Строка Выражение содержит либо место для специального символа или нет. Если нет, то возвращаемое значение Instr будет 0.

Смежные вопросы