Сравнение строк VBA

Я пытаюсь выполнить сравнение строк между диапазоном и ячейками слева от него. Таким образом, он проходит через диапазон, смотрит на ячейку, берет значение вправо и сравнивает их. Конечная цель - заполнить массив всеми совпадающими значениями.

Проблема, с которой я сталкиваюсь, заключается в том, что при использовании debug.print строка действительно совпадает. Однако оценка StrComp, которую я использую, оценивается как ложная.

Sub FilterProdType()
'Get the product filter chosen and set to a variable
Dim bArray As Variant
Dim search, cell As Range
Dim prod, item As String
Set search = Sheet2.Range("B2:B41")


For Each cell In search
    prod = Sheet1.Range("PRODTYPE").Value
    item = cell.Offset(0, 1).Value
    Debug.Print ("Value in range 'B2:B41':" & prod)
    Debug.Print ("Value in cell directly left one column:" & item)
    MsgBox StrComp(item, prod) = 0
Next cell
End Sub

Заранее спасибо!

1 ответ

Мне кажется, что вы сравниваете item как String с prod как Variantпотому что вы сделали путаницу в объявлении переменных.

Не могли бы вы добавить

Option Explicit

вверху, вы увидите, что ваш код требует

Dim search As Range, cell As Range
Dim prod As String, item As String

... Это Excel-VBA, а не VB.

Надеюсь, поможет.

Другие вопросы по тегам