Select Case => Limits

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Select Case => Limits
von: Albert
Geschrieben am: 06.08.2015 14:31:50

Hallo zusammen,
ich hab in einer For Each-Schleife eine Select Case-Anweisung verbaut.
Mit einem Haltepunkt hab ich nun versucht rauszubekommen, warum
ein Wert in der Schleife nicht angezeigt wird, obwohl der gesuchte Begriff
in der Liste vorkommt und auch die Zeile durchlaufen wird.
Wisst ihr, ob in der Select Case-Anweisung ein Maximum an Cases vorhanden ist
und wenn ja, wie viele "Case" sind erlaubt?
Besten Dank im Voraus für eure Rückmeldung
Gruß
A.

Bild

Betrifft: AW: Select Case => Limits
von: EtoPHG
Geschrieben am: 06.08.2015 14:42:12
Hallo Albert,
Mir ist kein solches Limit bekannt und wenn du sagst '...obwohl der gesuchte Begriff
in der Liste vorkommt und auch die Zeile durchlaufen wird.
' muss es wohl an deinem Code liegen. Wobei ich mir unter '...warum ein Wert in der Schleife nicht angezeigt wird' nicht sehr viel vorstellen kann. Vielleicht zeigst du uns mal den Code, und sagst uns für welche Werte deine Case-Statement nicht funktioniert und für welchen schon. oder noch besser Beispielmappe!
Gruess Hansueli

Bild

Betrifft: AW: Select Case => Limits
von: Daniel
Geschrieben am: 06.08.2015 14:46:38
HI
wieviele CASE hast du denn in deinem Select?
schon geprüft auf übersehene Leerzeichen und übereinstimmende Gross/Kleinschreibung?
Gruß Daniel

Bild

Betrifft: AW: Select Case => Limits
von: Albert
Geschrieben am: 06.08.2015 14:51:21
Hallo Daniel,
aktuell befinden sich 48 CASE in meinem Quellcode...
Den Begriff hab ich direkt aus der Liste mit 6638 Zeilen entnommen.
Also Copy/Paste-Fehler sollte auch nicht vorgekommen sein.

Bild

Betrifft: AW: Select Case => Limits
von: Daniel
Geschrieben am: 06.08.2015 14:59:01
Hi
also es liegt wahrscheinlich nicht an der Anzahl der Case-Fälle.
da werden auch mehr verarbeitet.
Gruß Daniel

Bild

Betrifft: AW: Select Case => Limits
von: Michael
Geschrieben am: 06.08.2015 15:38:06
Hi Albert,
Du weißt ja, an welcher Stelle Deiner Datei der Code stehenbleibt, etwa an der Zeile 654.
Setze vor die Case doch mal sinngemäß:
if zeile>653 then stop
dann bleibt VB immer in der jeweiligen Zeile stehen und Du kannst mit F8 zeilenweise weiter.
Es wurde ja schon die Vermutung mit Leerzeichen geäußert; vielleicht hängt ja irgendwo hinten eines dran; Du kannst Dir ja die Daten mit
msgbox "Daten 1: >" & daten1 & "<" & vblf & "Daten 2: >" & daten2 & "<"
untereinander ausgeben lassen.
Außerdem war hier kürzlich ein Post mit internationalen Zeichensatz-Problemen, wo "hinter" einigen der sichtbaren Zeichen ein ziemlich übler UDF-Code gesteckt hatte.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Select Case => Limits
von: Albert
Geschrieben am: 06.08.2015 15:55:36
Hallo Michael,
der Tipp mit dem STOP war Gold wert! Danke...
Ich hatte einen Case zweimal im Quellcode und somit hat ein Case den anderen
ausgehebelt!
Anfängerfehler...!
Besten Dank für eure Hilfe
Gruß
A.

Bild

Betrifft: gerne
von: Michael
Geschrieben am: 07.08.2015 14:13:17
Hi Albert,
freut mich, daß Du den Bug gefunden hast.
Ich hab mir gestern schon überlegt, vielleicht noch einen allgemeinen Hinweis anzubringen: so viele CASEs kommen mir irgendwie "komisch" vor.
Ich vermute, daß es darum geht, unterschiedliche Daten (einer umfangreicheren Tabelle bzw. "Datenbank") unterschiedlich weiterzuverarbeiten. Eventuell lassen sich durch eine abstraktere Herangehensweise eine Reihe CASEs einsparen, indem Du in den Daten selbst eine oder mehrere zusätzliche Spalten mit "abstrakten" Kennzeichen vergibst, über die Du dann die entsprechende Vorgehensweise steuerst.
Mir fällt jetzt leider kein griffiges Beispiel ein, aber ich bin mir ziemlich sicher, daß eine Vereinfachung möglich ist.
Der Punkt ist: je mehr Code man schreibt, umso höher ist die Wahrscheinlichkeit, daß man Fehler macht.
Happy Exceling,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Select Case => Limits"