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

Forumthread: Unterschied "#If" und "if"? Wofür braucht man das "#"?

Unterschied "#If" und "if"? Wofür braucht man das "#"?
06.12.2019 15:06:16
ChrisW
Hallo Leute,
ich habe beim suchen nach suche der "Declare" Anweisung VBA Code gefunden der vor der "If" Anweisung ein "#" verwendet:
#If VBA7 Then
Declare PtrSafe Sub...
#Else
Declare Sub...
#EndIf
Wofür benötigt man dieses "#" for den If / Else / Endif Anweisungen, was ist der unterschied zur den normalen Anweisung ohne dieses #?
Vielen Dank
LG ChrisW
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterschied "#If" und "if"? Wofür braucht man das "#"?
06.12.2019 15:30:28
EtoPHG
Hallo ChrisW,
Die Antwort findest Du in der Hilfe unter Übersicht über 64-Bit-Visual Basic for Applications
Gruess Hansueli
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Unterschied zwischen "#If" und "If" in VBA


Schritt-für-Schritt-Anleitung

Um den Unterschied zwischen #If und If in VBA zu verstehen, folge diesen Schritten:

  1. Verwendung von #If:

    • #If ist eine bedingte Kompilierungsanweisung, die zur Laufzeit nicht ausgewertet wird. Sie wird verwendet, um bestimmte Codeabschnitte je nach Bedingungen zur Kompilierungszeit einzuschließen oder auszuschließen.
    • Beispiel:
      #If VBA7 Then
       ' Code für 64-Bit-Version
      #Else
       ' Code für 32-Bit-Version
      #End If
  2. Verwendung von If:

    • If ist eine bedingte Anweisung, die während der Programmausführung ausgeführt wird. Sie wird verwendet, um Entscheidungen basierend auf Bedingungen zu treffen.
    • Beispiel:
      If x > 10 Then
       MsgBox "x ist größer als 10"
      End If
  3. Zusammenfassung:

    • #If wird zur Kompilierungszeit verwendet, während If zur Laufzeit verwendet wird. Dies ist der Hauptunterschied zwischen #If und If in VBA.

Häufige Fehler und Lösungen

  • Fehler: "Compiler-Fehler: Ungültige bedingte Kompilierung."

    • Lösung: Stelle sicher, dass der Code innerhalb der richtigen Struktur von #If ... #Else ... #End If steht.
  • Fehler: "Die If-Anweisung wird nicht erkannt."

    • Lösung: Überprüfe, ob du die richtige Syntax verwendest. Vergiss nicht, die Anweisung mit Then abzuschließen.

Alternative Methoden

Wenn die Verwendung von #If nicht notwendig ist, kannst du auch die Select Case-Anweisung in VBA verwenden, um ähnliche Funktionalitäten zu erreichen. Diese Methode kann besonders nützlich sein, wenn du mehrere Bedingungen überprüfen möchtest:

Select Case x
    Case Is > 10
        MsgBox "x ist größer als 10"
    Case Else
        MsgBox "x ist 10 oder kleiner"
End Select

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du #If und If in deinem VBA-Code verwenden kannst:

  1. Verwendung von #If in einem Modul:

    #If VBA7 Then
       Sub Beispiel64Bit()
           MsgBox "Dieser Code läuft in einer 64-Bit-Version."
       End Sub
    #Else
       Sub Beispiel32Bit()
           MsgBox "Dieser Code läuft in einer 32-Bit-Version."
       End Sub
    #End If
  2. Verwendung von If in einer Funktion:

    Function CheckNumber(x As Integer) As String
       If x Mod 2 = 0 Then
           CheckNumber = "x ist gerade"
       Else
           CheckNumber = "x ist ungerade"
       End If
    End Function

Tipps für Profis

  • Achte darauf, die richtige Verwendung von #If und If zu verstehen, um Makros effizient zu erstellen.
  • Nutze Kommentare, um die Absicht deiner bedingten Anweisungen klar zu dokumentieren.
  • Teste deinen Code gründlich, um sicherzustellen, dass alle Bedingungen wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Was ist der Hauptunterschied zwischen #If und If?
#If wird zur Kompilierungszeit verwendet, während If zur Laufzeit Entscheidungen trifft.

2. Wofür braucht man #If in VBA?
#If ermöglicht es dir, verschiedene Codeabschnitte je nach Kompilierungsbedingungen einzuschließen oder auszuschließen, was besonders nützlich für die Unterstützung verschiedener Versionen ist.

3. Was passiert, wenn ich #If falsch benutze?
Du erhältst einen Compiler-Fehler, wenn die Struktur von #If nicht korrekt ist oder wenn die Bedingungen nicht erfüllt sind. Achte darauf, die Syntax genau zu befolgen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige