2017-01-18 3 views
0

Ich versuche, einen String-Vergleich zwischen einem Bereich und den Zellen links von ihm abzuschließen. Also geht es durch einen Bereich, schaut auf eine Zelle, nimmt den Wert nach rechts und vergleicht sie. Das Endziel besteht darin, ein Array mit allen übereinstimmenden Werten zu füllen.String Vergleich VBA

Das Problem, das ich habe, ist, wenn ich debug.print verwende, scheinen die Zeichenfolge zu übereinstimmen. Die von mir verwendete StrComp-Auswertung wird jedoch als falsch bewertet.

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 

Vielen Dank im Voraus!

+2

Versuch 'Wenn Einzelteil wie prod Then' –

+1

Haben Sie' versucht, CompareMethod.Text' oder 'Binary' nach dem' Artikel, prod'? Es kann sein, dass Sie nur die Vergleichsmethode einstellen müssen. Überprüfen Sie auch, ob es weitere Leerzeichen gibt, da sie dazu führen könnten, dass es falsch zurückkehrt. –

+1

Haben Sie das alte, aber goldene Element ausprobiert = prod? – Pierre

Antwort

0

Dies scheint mir, dass Sie eine item als String mit einem prod als Variant vergleichen, weil Sie eine Verwirrung in der Variablendeklaration tat.

Würden Sie

Option Explicit 

an der Spitze hinzuzufügen, würden Sie sehen, dass Ihr Code

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

erfordert ... Dies ist Excel-VBA, nicht VB.

Ich hoffe, es hilft.