2014-11-14 3 views
1

Пытается сделать простой скрипт VBA, чтобы посмотреть на поле, и если это поле содержит 99 посередине, тогда отобразите другое поле. Я могу получить нормальный оператор для работы, т. Е. field2 = "5D992", но не содержать инструкцию с использованием диких карт (см. Скрипт ниже). Я думаю, что это может быть только мой синтаксис неправильный, любые идеи кто-нибудь ???Использование сценария VBA не работает

Sub OnFormat 

    IF rpt.field3.Text.contains "*99*" THEN 
     rpt.field2.visible = false 
    Else 
     rpt.field2.Visible = true 
    End If 

End Sub 

Спасибо за любые предложения.

ответ

1

Вы должны использовать InStr.

If InStr(1, rpt.field3.Text, "99", vbTextCompare) Then 
    rpt.field2.visible = false 
Else 
    rpt.field2.visible = true 
End If 

См MSDN InStr Function documentation for more information

+0

Спасибо за этот Smittey, но маски не используется для этой функции ?? –

+0

Добро пожаловать! Если я правильно понял вопрос, вы имеете в виду использование подстановочного символа (например, «*»)? Если это так, эта функция InStr будет искать 99 в строке, предоставленной ко второму аргументу ('rpt.field3.Text'), поэтому эффективно использует подстановочные знаки, поэтому' '* 99 *" '! – Smittey

+0

Большое спасибо за объяснение, очень ценим. Скрипт работает замечательно сейчас, очень ценится. –

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