Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA SELECT CASES Find Case nicht

VBA SELECT CASES Find Case nicht
24.07.2018 15:20:47
R.Wichert
Hallo Ich habe folgenden Code:

For i = 4 To LZeil
Select Case Cells(i, 2)
Case "AI"
AI FstOB, XMLName(Cells(i, 3)), i * 10, Cells(i, 4)
Case "AI_TC"
AI_TC FstOB, XMLName(Cells(i, 3)), i * 10, Cells(i, 4)
Case Else
MsgBox "FC/FB Typ " + Cells(i, 2) + " für " + Cells(i, 3) + " in Zeile " & i & " unbekannt. _
GoTo Fertig
End Select
Next i
Eine Beispieldatei:
https://www.herber.de/bbs/user/122858.xlsm
(Blatt: FC11 Code: XML011)
Allerding findet es "AI_TC" nicht und geht in die Else Anweisung.
Nur weiß ich nicht wieso? Wo liegt mein Fehler?
Danke R.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA SELECT CASES Find Case nicht
24.07.2018 15:33:41
Nepumuk
Hallo Robert,
die MsgBox kommt von hier:
For i = 4 To LZeil
    Select Case Cells(i, 2)
            
        Case "Antrieb 2DR_1200"
            Antrieb2DR_1200 FstOB, XMLName(Cells(i, 3)), i * 10, Cells(i, 4)
            
        Case Else
            MsgBox "FC/FB Typ " + Cells(i, 2) + " für " + Cells(i, 3) + " in Zeile " & i & " unbekannt."
            GoTo Fertig
    End Select
Next i

Gruß
Nepumuk
Anzeige
AW: VBA SELECT CASES Find Case nicht
24.07.2018 15:37:52
R.Wichert
Danke. Habe das Falsche Makro zugewiesen!!
Magst du mir sagen wie du das erkannt hast? Über den Button?
AW: VBA SELECT CASES Find Case nicht
24.07.2018 15:54:53
Nepumuk
Hallo Robert,
ich habe im Projekt nach FC/FB Typ gesucht und an den beiden Fundstellen einen Haltepunkt gesetzt.
Gruß
Nepumuk
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA SELECT CASES: Fehlerbehebung und Tipps


Schritt-für-Schritt-Anleitung

Um den Select Case Befehl in VBA effizient zu nutzen, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle "Einfügen" > "Modul".
  3. Schreibe den Code:
    For i = 4 To LZeil
       Select Case Cells(i, 2)
           Case "AI"
               AI FstOB, XMLName(Cells(i, 3)), i * 10, Cells(i, 4)
           Case "AI_TC"
               AI_TC FstOB, XMLName(Cells(i, 3)), i * 10, Cells(i, 4)
           Case Else
               MsgBox "FC/FB Typ " & Cells(i, 2) & " für " & Cells(i, 3) & " in Zeile " & i & " unbekannt."
       End Select
    Next i
  4. Teste den Code: Führe den Code aus, um sicherzustellen, dass die Cases korrekt erkannt werden.

Häufige Fehler und Lösungen

  • Case wird nicht erkannt: Wenn ein Case nicht gefunden wird, überprüfe die Schreibweise im Excel-Feld. Achte auf Leerzeichen oder unsichtbare Zeichen.
  • Falsches Makro zugewiesen: Vergewissere dich, dass das richtige Makro an den Button oder das Ereignis gebunden ist. Dies kann zu unerwartetem Verhalten führen.
  • Verwendung von Case Like: Wenn du Mustervergleiche benötigst, nutze Case Like:
    Select Case Cells(i, 2)
       Case Like "AI*"
           ' Code hier
    End Select

Alternative Methoden

Wenn Select Case nicht die gewünschte Flexibilität bietet, kannst du folgende Alternativen in VBA verwenden:

  • If...Then...Else: Eine einfache Struktur, die oft für komplexe Bedingungen verwendet wird.

    If Cells(i, 2) = "AI" Then
       ' Code hier
    ElseIf Cells(i, 2) = "AI_TC" Then
       ' Code hier
    Else
       MsgBox "Unbekannter Typ."
    End If
  • Dictionary-Objekte: Für umfangreiche Daten können Dictionaries nützlich sein, um Schlüssel-Wert-Paare zu speichern.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von Select Case in VBA:

  1. Einfaches Beispiel:

    Select Case Cells(i, 1)
       Case 1
           MsgBox "Eins"
       Case 2
           MsgBox "Zwei"
       Case Else
           MsgBox "Unbekannt"
    End Select
  2. Mit Case Like:

    Select Case Cells(i, 1)
       Case "A*"
           MsgBox "Beginnt mit A"
       Case "B*"
           MsgBox "Beginnt mit B"
    End Select

Tipps für Profis

  • Verwendung von Case Is: Damit kannst du numerische Vergleiche durchführen:
    Select Case Cells(i, 1)
       Case Is < 10
           ' Code für Werte kleiner als 10
       Case Is >= 10
           ' Code für Werte größer oder gleich 10
    End Select
  • Optimierung von Select Case: Halte die Cases so einfach wie möglich, um die Lesbarkeit des Codes zu erhöhen.

FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Bedingungen in einem Case kombinieren?
Antwort: Du kannst Case mit Or kombinieren:

Select Case Cells(i, 2)
    Case "AI", "AI_TC"
        ' Code hier
End Select

2. Frage
Was ist der Unterschied zwischen Case und Case Like?
Antwort: Case vergleicht den Wert direkt, während Case Like Mustervergleiche ermöglicht, ideal für Wildcards.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige