Member 14163890 Ответов: 2

Если instr(mymessage, "I'") <> 0, то = ошибка компилятора ?


Я написал макрос visual basic в Excel
Я ищу струны я буду я буду
Кодирование, как и выше, с использованием "I'" обходит текст

Что я уже пробовал:

Searching for I'm separately does not work either
Using ""I'm"" gives a compilation error
Any workarounds greatly received for 67 year old coder with 50 years IT experience.
Darrell

Patrice T

Программист с 50 - летним опытом работы должен знать, что показать свой код-это первое, что нужно сделать, когда он просит о помощи.

Member 14163890

YJanks для вашего быстрого ответа. Код отображается в заголовке моего сеанса

Если InStr(MyMessage, "I'") <> 0, то

Я написал макрос visual basic в Excel
Я ищу струны я буду я буду
Кодирование, как и выше, с использованием "I'" обходит текст

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Определенно не ошибка компилятора. VBA существует уже несколько десятилетий, так что эта возможность чрезвычайно удалена, и вы ничего не делаете "на краю".

Это работает так, как и ожидалось для меня:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim message

    message = "I'm OK"
    
    If InStr(message, "I'") <> 0 Then
        MsgBox "Found"
    Else
        MsgBox "Not Found"
    End If
End Sub

Вы использовали "Option Compare" в верхней части вашего кода?


Рейтинг:
2

Maciej Los

Что ж... Замените двойные кавычки одинарными, так что ""I'll"" следует заменить на "I'll" и все будет хорошо. Видеть:

Option Explicit


Sub test()
    Dim Strings2Find As Variant
    Dim Text2SearchIn As String
    Dim i As Integer, j As Integer
    
    Text2SearchIn = "I'm glad i can see you. I'd like to introduce some one to you. I'll be very happy, if you'll..." 'text is not important ;)
    Strings2Find = Array("I'm", "I'll", "I'd")
    
    
    For i = LBound(Strings2Find) To UBound(Strings2Find)
        Do
            j = InStr(j + 1, Text2SearchIn, Strings2Find(i))
            If j > 0 Then MsgBox "'" & Strings2Find(i) & "' has been found on position: " & j & vbCr & _
            "'" & Text2SearchIn & "'", vbOKOnly, "Success!"
        Loop While j > 0
    Next


End Sub