Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: If Abfrage erkennt gleiche Array Werte nicht

If Abfrage erkennt gleiche Array Werte nicht
10.09.2015 23:30:33
Martin
Hallo,
ich habe ein Problem, was mir Kopfzerbrechen bereitet.
Ich habe zwei Arrays (jeweils zweidimensional). Nun möchte ich für Werte aus dem ersten Array prüfen, ob diese Werte ebenfalls im zweiten Array enthalten sind.
Hierfür durchlaufe ich das zweite Array mit einer For Schleife und Prüfe mit einer IF Abfrage, ob die jeweiligen Werte gleich sind.
Hier taucht allerdings ein Problem auf.
Auch wenn die Werte gleich sind, ist die If Abfrage aus irgendeinem Grund nicht erfüllt. Die Werte sind für VBA also nicht gleich.
Dass die Werte gleich sind, habe ich im Direktfenster überprüft, also beide Werte über debug.print ins Direktfenster geschrieben.
Kennt jemand ein derartiges Problem? Woran könnte sowas liegen?
Hier ist mal der Ausschnitt von meinem Code:

If Arr(z, 8) = "X" Then
Arr(z, 8) = "YES"
For x = 1 To UBound(FreestockArr)
Debug.Print FreestockArr(x, 1)  'Diese beiden Werte sind gleich
Debug.Print Arr(z, 3)           'Diese beiden Werte sind gleich
If Arr(z, 3) = FreestockArr(x, 1) Then   'Hier taucht das Problem auf
Arr(z, 9) = FreestockArr(x, 2)
Arr(z, 10) = FreestockArr(x, 3)
GoTo gefunden
End If
Next
gefunden:
End If 

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Abfrage erkennt gleiche Array Werte nicht
11.09.2015 06:43:10
Martin
Ich hab übrigens schon versucht die Zahlen zu runden (obwohl es eigentlich Ganzzahlen sind) und Leerzeichen haben sich auch nicht eingeschlichen.

AW: If Abfrage erkennt gleiche Array Werte nicht
11.09.2015 10:01:49
Rudi
Hallo,
schon mit
If CLng(Arr(z, 3)) = CLng(FreestockArr(x, 1)) Then
versucht?
Gruß
Rudi

AW: If Abfrage erkennt gleiche Array Werte nicht
11.09.2015 10:25:28
Daniel
Hi
prüfe auch mal folgendes:
Debug.Print FreestockArr(x, 1), VarType(FreestockArr(x, 1)),
Debug.Print Arr(z, 3), VarType(FreestockArr(x, 1))
damit überprüfst du, ob in einer der Variabeln nicht eine als Text gespeicherte Zahl vorliegt
falls das der Fall sein sollte und hier unterschiedliche Datentypen vorliegen, kannst du den mit einer der C-Funktionen (CStr, CLng, CDbl) umwandeln und angleichen.
ich würde allerdings hier in einen Text wanden (CStr), dann bekommst du keinen Fehler, falls in den Zellen mal ein Text vorkommt, der nicht wandelbar ist.
Mit TRIM kannst du dann auch gleich Leerzeichen abschneiden, welche auch gerne mal nach Datenimporten an den Werten anhängen:
If Trim(CStr(Arr(z, 3))) = Trim(CStr(FreestockArr(x, 1))) Then
Gruß Daniel

Anzeige
AW: If Abfrage erkennt gleiche Array Werte nicht
11.09.2015 16:25:25
Martin
Jawoll! Vielen Dank!
Das war tatsächlich das Problem.
Die eine Spalte in der Tabelle aus der das Array erstellt wird, war als Text formatiert, weshalb auch das eine Array als String und das andere als Long definiert war. Ich habs jetzt entsprechend angepasst und so läufts. THX =)
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige