Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

StrComp gibt falschen Wert zurück?

StrComp gibt falschen Wert zurück?
19.07.2019 13:39:32
Waldemar
Moin,
ich habe ein seltsames Problem und weiß wirklich nicht weiter.

Dim cmbxItem(2) As Variant
Dim cmbxTopic(2)
Dim colIndx As Integer
Dim tp As Integer
Dim comparevalue As Integer
For Each ws In ThisWorkbook.Sheets
If ws.Name Like "*" & "Modul" & "*" Then
ws.Activate
For tp = 0 To 2
colIndx = 1
If IsEmpty(cmbxItem) = False Then
While comparevalue = StrComp(cmbxTopic(tp), Cells(1, colIndx),  _
vbBinaryCompare)  0
colIndx = colIndx + 1
Wend
Else
Exit Sub

Wenn jetzt cmbxtopic(0) den String "Typ" beinhaltet und die Zelle (1,1) z.B. "ID" beinhaltet, liefert StrComp trotz Binarycompare eine 0.
Die While Schleife wird zwar initialisiert aber comparevalue hat immer den Wert 0 unabhängig von der Zelle mit der ich vergleiche.
Ich versteh nicht warum, kann mich jemand aufklären ob ich eventuell etwas Missverstehe?
Vielen Dank
Waldi

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

Betreff
Datum
Anwender
Anzeige
AW: StrComp gibt falschen Wert zurück?
19.07.2019 14:03:08
Daniel
Hi
also bei mir funktionierts.
strComp liefert schon das richtige Ergebnis.
allerdigs scheint mir deine Bedingungsprüfung für das WHILE noch nicht so ganz korrekt zu sein:
while comparevalue = StrComp(cmbxTopic(tp), Cells(1, colIndx), vbBinaryCompare)  0

das sieht mit den zwei bedingungsprüfungen ("=" und "") zumindest "komisch" aus, zumal du comparevalue noch keinen Wert zugewiesen hast.
sollte das dein Wunsch sein, dann solltest du mit Klammern arbeiten um sicher zu stellen, ob zuerst der "=" -Vergleich ausgeführt werden soll oder zuerst der ""-Vergleich.
Gruß Daniel
Anzeige
AW: StrComp gibt falschen Wert zurück?
20.07.2019 07:16:46
Luschi
Hallo Waldi,
ich habe Dein Problem mal nachgebaut und die While-Schleife im F8-Modus durchgesteppt und zu meinem Erstaunen scheibt das Programm das Ergebnis des Vergleichs:
StrComp(cmbxTopic(tp), Cells(1, colIndx), vbBinaryCompare) 0
nicht in die Speichervariable 'comparevalue', sondern die bleibt immer leer - also null.
Gruß von Luschi
aus klein-Paris
Das ist ja auch nicht verwunderlich, ...
20.07.2019 12:57:39
Luc:-?
…Luschi,
denn While erwartet einen Booleschen Wert und keine Zuweisung. Somit liegen hier 2 Vgle in einem vor, was auch Daniel bereits angedeutet hatte, und das geht so nicht. Das <> 0 ist schlicht überflüssig. Allenfalls kann man auch While CBool(comparevalue = StrComp(cmbxTopic(tp), Cells(1, colIndx), vbBinaryCompare)) schreiben, was es deutlicher macht.
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: StrComp gibt falschen Wert zurück?
22.07.2019 10:33:15
Waldemar
Hallo Daniel, tut mir leid dass ich so spät Antworte. Deine Erklärung hat mir geholfen und das Problem ist behoben. Vielen Dank!

264 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige