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

Oder-Bedingung in VBA

Forumthread: Oder-Bedingung in VBA

Oder-Bedingung in VBA
20.02.2008 17:02:00
Torsten
Hallo beisammen,
folgender Code läuft reibungslos durch:
Dim X
Dim B As Boolean 'Prüf-Variable für Schleifendurchlauf
X = 11
B = False
Do Until Sheets("Abrechnung").Cells(X, 3) = "End Of File"
If IsNumeric(Sheets("Abrechnung").Cells(X, 3)) Then
If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 Then
B = True
With Sheets("RG")
.Visible = True
....
Wenn ich aber die Bedingung von 3-stellig auf 10-stellig erweitern möchte:
If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 or
If Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then
bekomme ich einen Fehler beim Kompilieren: "Erwartet: Ausdruck". Wie ist denn die richtige Syntax?
Vielen Dank für Eure Hilfe im voraus.
Gruß
Torsten

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Oder-Bedingung in VBA
20.02.2008 17:05:00
INGO
If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 or _
Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then
mfG
Ingo Christiansen

AW: Oder-Bedingung in VBA
20.02.2008 17:06:02
Renee
Hi Thorsten,
...ohne das 2te if und mit einem _ Verbindungszeichen.

If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 or _
Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then


Renée

Anzeige
erledigt - Vielen Dank Euch beiden - Gruß Torsten
20.02.2008 17:09:00
Torsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Oder-Bedingung in VBA


Schritt-für-Schritt-Anleitung

Um eine Oder-Bedingung in VBA korrekt zu verwenden, kannst du folgendes Vorgehen anwenden:

  1. Deklariere die Variablen: Stelle sicher, dass du alle benötigten Variablen deklariert hast.

    Dim X As Integer
    Dim B As Boolean
  2. Setze den Startwert: Setze den Startwert für deine Schleife.

    X = 11
    B = False
  3. Erstelle die Schleife: Nutze eine Do Until-Schleife, um durch die Zellen zu iterieren.

    Do Until Sheets("Abrechnung").Cells(X, 3) = "End Of File"
  4. Verwende die Oder-Bedingung: Integriere die Oder-Bedingung in deine If-Anweisung.

    If IsNumeric(Sheets("Abrechnung").Cells(X, 3)) Then
       If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 Or _
          Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then
           B = True
       End If
    End If
  5. Schließe die Schleife ab: Stelle sicher, dass die Schleife korrekt geschlossen wird.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der auftritt, ist die Verwendung der falschen Syntax bei der Oder-Bedingung. Wenn du folgende Zeile verwendest:

If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 or

bekommst du den Fehler "Erwartet: Ausdruck". Die korrekte Syntax muss mit einem Unterstrich _ enden, um die Zeile fortzusetzen:

If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 Or _
   Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then

Alternative Methoden

Eine alternative Methode zur Verwendung von Oder-Bedingungen ist die Verwendung von Arrays. Du kannst die Werte in einem Array speichern und dann prüfen, ob der Zellwert in diesem Array vorhanden ist. Hier ein Beispiel:

Dim validLengths As Variant
validLengths = Array(3, 10)

If IsNumeric(Sheets("Abrechnung").Cells(X, 3)) Then
    For Each length In validLengths
        If Len(Sheets("Abrechnung").Cells(X, 3)) = length Then
            B = True
            Exit For
        End If
    Next length
End If

Praktische Beispiele

Hier ist ein vollständiges Beispiel für eine VBA-Prozedur, die die Oder-Bedingung verwendet:

Sub CheckCellLength()
    Dim X As Integer
    Dim B As Boolean
    X = 11
    B = False

    Do Until Sheets("Abrechnung").Cells(X, 3) = "End Of File"
        If IsNumeric(Sheets("Abrechnung").Cells(X, 3)) Then
            If Len(Sheets("Abrechnung").Cells(X, 3)) = 3 Or _
               Len(Sheets("Abrechnung").Cells(X, 3)) = 10 Then
                B = True
                ' Weitere Aktionen hier
            End If
        End If
        X = X + 1
    Loop
End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze die And-Bedingung in Kombination mit Or, um komplexere logische Ausdrücke zu erstellen.
  • Achte darauf, die Lesbarkeit deines Codes zu erhöhen, indem du den Code gut strukturierst und Kommentare einfügst.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Oder-Bedingungen kombinieren?
Du kannst mehrere Bedingungen in einer If-Anweisung kombinieren, indem du sie mit Or verbindest:

If condition1 Or condition2 Or condition3 Then

2. Was ist der Unterschied zwischen And und Or in VBA?
And prüft, ob alle Bedingungen wahr sind, während Or nur eine Bedingung benötigt, um wahr zu sein.

3. Kann ich auch andere Datenüberprüfungen in der Oder-Bedingung durchführen?
Ja, du kannst verschiedene Datentypen und Bedingungen kombinieren, um deine Logik entsprechend anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige