2017-01-18 7 views
0

範囲とその左側のセルの文字列比較を完了しようとしています。したがって、範囲を通過し、セルを見て、その値を右側に持ち込み、それらを比較します。最終目標は、一致するすべての値を配列に取り込むことです。文字列比較VBA

私が抱えている問題は、debug.printを使用すると文字列が一致するように見えることです。しかし、私が使用しているStrCompの評価はfalseに評価されています。

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 

ありがとうございます!

+2

try 'If item like prod Then' –

+1

' item、prod'の後に '、CompareMethod.Text'または' Binary'を試しましたか? compareメソッドを設定するだけでよいかもしれません。また、余分な空白があるかどうかを確認して、偽を返す可能性があります。 –

+1

古いものの、金のアイテム= prodを試しましたか? – Pierre

答えて

0

これは、あなたの変数の宣言に混乱をしたので、あなたは、VariantとしてprodStringとしてitemを比較しているように私には思えます。

はあなたが一番上に

Option Explicit 

を追加し、あなたのコードが

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

を必要としていることがわかります...これは、Excel-VBA、VBではないです。

希望します。