Если оператор не работает с переданным аргументом VBA - PullRequest
1 голос
/ 01 октября 2019

У меня есть макрос в Outlook, который передает аргумент макросу в Excel, проблема заключается в простом утверждении If, неправильно сравнивающем два значения. Это может быть тип данных, но я действительно не уверен, почему это не работает

Я пытался использовать Like и InStr (), но они все еще не работали.

Sub increase(gageID As String)
Dim temp As String
'MsgBox gageID  Shows correct string
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))
For Each cell In Rng
temp = cell.Value
'MsgBox temp  Loops through every cell in column A correctly
    If temp = gageID Then 'Can't compare for some reason
        MsgBox cell.Value    'Code never reaches here, no errors thrown
        MsgBox "test3"
        cell.Offset(0, 9).Value = cell.Offset(0, 9).Value + 7       
    End If
Next

End Sub

1 Ответ

0 голосов
/ 02 октября 2019

Вы можете сделать Trim () и использовать функцию StrComp

Возвращает вариант (Строка), содержащая копию указанной строки без начальных пробелов (LTrim), конечных пробелов (RTrim) или как начальных, так и конечных пробелов (Trim).


Сравнениедве последовательности символов. Используйте Option Compare, чтобы указать двоичное или текстовое сравнение. В англо-американских бинарных сравнениях чувствительны к регистру;текстовые сравнения не.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...