So verwenden Sie Wenn-Dann in Excel 2016 VBA

If-Then ist die wichtigste Kontrollstruktur von VBA. Sie werden diesen Befehl wahrscheinlich täglich verwenden. Verwenden Sie die If-Then-Struktur, wenn Sie eine oder mehrere Anweisungen bedingt ausführen möchten. Mit der optionalen Else-Klausel können Sie eine oder mehrere Anweisungen ausführen, wenn die von Ihnen getestete Bedingung nicht wahr ist. Hier ist eine einfache CheckUser-Prozedur, die so umkodiert wurde, dass sie die If-Then-Else-Struktur verwendet:

Unter CheckUser2()
  Benutzername = InputBox(“Geben Sie Ihren Namen ein:“)
  Wenn Benutzername = "Satya Nadella" Dann
    MsgBox („Willkommen Satya…“)
' …[Mehr Code hier] …
  Anders
    MsgBox „Entschuldigung. Das kann nur Satya Nadella.“
  Ende Wenn
End Sub

Wenn-Dann-Beispiele

Die folgende Routine demonstriert die If-Then-Struktur ohne die optionale Else-Klausel:

Unter GreetMe()
  Wenn Zeit < 0,5, dann MsgBox „Guten Morgen“
End Sub

Die GreetMe-Prozedur verwendet die Zeitfunktion von VBA, um die Systemzeit abzurufen. Wenn die aktuelle Uhrzeit weniger als 0,5 beträgt, zeigt die Routine eine freundliche Begrüßung an. Wenn Time größer oder gleich 0,5 ist, endet die Routine und nichts passiert.

Um eine andere Begrüßung anzuzeigen, wenn Zeit größer oder gleich 0,5 ist, können Sie nach der ersten eine weitere Wenn-Dann-Anweisung hinzufügen:

Unter GreetMe2()
  Wenn Zeit < 0,5, dann MsgBox „Guten Morgen“
  Wenn Zeit >= 0,5, dann MsgBox „Guten Tag“
End Sub

Beachten Sie, dass >= (größer oder gleich) für die zweite If-Then-Anweisung verwendet wird. Damit ist der gesamte Tag abgedeckt. Wäre > (größer als) verwendet worden, würde keine Meldung erscheinen, wenn dieser Vorgang genau um 12:00 Uhr mittags ausgeführt würde. Das ist ziemlich unwahrscheinlich, aber bei einem so wichtigen Programm möchte man kein Risiko eingehen.

Ein Wenn-Dann-Else-Beispiel

Ein anderer Ansatz für das obige Problem verwendet die Else-Klausel. Hier ist dieselbe Routine umcodiert, um die If-Then-Else-Struktur zu verwenden:

Unter GreetMe3()
  Wenn Zeit < 0,5, dann MsgBox „Guten Morgen“ Sonst _
    MsgBox „Guten Tag“
End Sub

Beachten Sie, dass im vorherigen Beispiel das Zeilenfortsetzungszeichen (Unterstrich) verwendet wird. Die If-Then-Else-Anweisung ist eigentlich eine einzelne Anweisung. VBA bietet eine etwas andere Möglichkeit zum Codieren von If-Then-Else-Konstrukten, die eine End If-Anweisung verwenden. Daher kann das GreetMe-Verfahren umgeschrieben werden als

Unter GreetMe4()
  Wenn Zeit < 0,5 Dann
    MsgBox „Guten Morgen“
  Anders
    MsgBox „Guten Tag“
  Ende Wenn
End Sub

Tatsächlich können Sie eine beliebige Anzahl von Anweisungen unter dem If-Teil und eine beliebige Anzahl von Anweisungen unter dem Else-Teil einfügen. Diese Syntax ist einfacher zu lesen und verkürzt die Anweisungen.

Was ist, wenn Sie die GreetMe-Routine erweitern müssen, um drei Bedingungen zu bewältigen: morgens, nachmittags und abends? Sie haben zwei Möglichkeiten: Verwenden Sie drei If-Then-Anweisungen oder verwenden Sie eine verschachtelte If-Then-Else-Struktur. Verschachtelung bedeutet, eine If-Then-Else-Struktur innerhalb einer anderen If-Then-Else-Struktur zu platzieren. Der erste Ansatz mit drei Wenn-Dann-Anweisungen ist einfacher:

Unter GreetMe5()
 Dim Msg As String
 Wenn Zeit < 0,5, dann Nachricht = „Morgen“
 Wenn Zeit >= 0,5 und Zeit < 0,75, dann Nachricht = „Nachmittag“
 Wenn Zeit >= 0,75, dann Nachricht = „Abend“
 MsgBox „Gut“ & Msg
End Sub

Eine neue Wendung wurde mit der Verwendung einer Variablen hinzugefügt. Die Variable Msg erhält je nach Tageszeit einen anderen Textwert. Die MsgBox-Anweisung zeigt die Begrüßung an: Guten Morgen, Guten Nachmittag oder Guten Abend.

Die folgende Routine führt dieselbe Aktion aus, verwendet jedoch eine If-Then-End-If-Struktur:

Unter GreetMe6()
  Dim Msg As String
  Wenn Zeit < 0,5 Dann
    Nachricht = „Morgen“
  Ende Wenn
  Wenn Zeit >= 0,5 Und Zeit < 0,75 Dann
    Nachricht = „Nachmittag“
  Ende Wenn
  Wenn Zeit >= 0,75 Dann
    Nachricht = „Abend“
  Ende Wenn
  MsgBox „Gut“ & Msg
End Sub

Verwenden von ElseIf

In den vorherigen Beispielen wird jede Anweisung in der Routine ausgeführt. Eine etwas effizientere Struktur würde die Routine verlassen, sobald festgestellt wird, dass eine Bedingung wahr ist. Morgens soll die Prozedur beispielsweise die Guten-Morgen-Nachricht anzeigen und dann beenden – ohne die anderen überflüssigen Bedingungen zu bewerten.

Bei einer kleinen Routine wie dieser müssen Sie sich keine Gedanken über die Ausführungsgeschwindigkeit machen. Aber für größere Anwendungen, bei denen es auf Geschwindigkeit ankommt, sollten Sie eine andere Syntax für die Wenn-Dann-Struktur kennen.

So können Sie die GreetMe-Routine mithilfe dieser Syntax neu schreiben:

Unter GreetMe7()
 Dim Msg As String
 Wenn Zeit < 0,5 Dann
   Nachricht = „Morgen“
 SonstWenn Zeit >= 0,5 Und Zeit < 0,75 Then
   Nachricht = „Nachmittag“
 Anders
   Nachricht = „Abend“
 Ende Wenn
 MsgBox „Gut“ & Msg
End Sub

Wenn eine Bedingung wahr ist, führt VBA die bedingten Anweisungen aus und die If-Struktur endet. Mit anderen Worten, dieses Verfahren ist etwas effizienter als die vorherigen Beispiele. Der Nachteil besteht darin, dass der Code schwieriger zu verstehen ist.

Ein weiteres Wenn-Dann-Beispiel

Hier ist ein weiteres Beispiel, das die einfache Form der If-Then-Struktur verwendet. Dieses Verfahren fordert den Benutzer zur Eingabe einer Menge auf und zeigt dann den entsprechenden Rabatt basierend auf der vom Benutzer eingegebenen Menge an:

Unter ShowDiscount()
  Dim Menge so lang
  Dim-Rabatt als Double
  Menge = InputBox("Menge eingeben:")
  Wenn Menge > 0, dann Rabatt = 0,1
  Wenn Menge >= 25, dann Rabatt = 0,15
  Wenn Menge >= 50, dann Rabatt = 0,2
  Wenn Menge >= 75, dann Rabatt = 0,25
  MsgBox „Rabatt:“ & Rabatt
End Sub

Beachten Sie, dass jede If-Then-Anweisung in dieser Routine ausgeführt wird und sich der Wert für Discount während der Ausführung der Anweisungen ändern kann. Letztendlich zeigt die Routine jedoch den richtigen Wert für Discount an, da die If-Then-Anweisungen nach aufsteigenden Discount-Werten geordnet sind.

Das folgende Verfahren führt die gleichen Aufgaben durch, indem die alternative ElseIf-Syntax verwendet wird. In diesem Fall endet die Routine sofort nach der Ausführung der Anweisungen für eine wahre Bedingung:

Unter ShowDiscount2()
 Dim Menge so lang
 Dim-Rabatt als Double
 Menge = InputBox(“Menge eingeben:“)
 Wenn Menge > 0 und Menge < 25 dann
  Rabatt = 0,1
 SonstWenn Menge >= 25 Und Menge < 50 Then
  Rabatt = 0,15
 SonstWenn Menge >= 50 Und Menge < 75 Then
  Rabatt = 0,2
 SonstWenn Menge >= 75 Dann
  Rabatt = 0,25
 Ende Wenn
 MsgBox „Rabatt:“ & Rabatt
End Sub

Diese mehrfachen Wenn-Dann-Strukturen sind ziemlich umständlich. Vielleicht möchten Sie die Wenn-Dann-Struktur nur für einfache binäre Entscheidungen verwenden.


Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet ist eine dynamische Arbeitsplattform, mit der Sie Projekte verwalten, Arbeitsabläufe erstellen und mit Ihrem Team zusammenarbeiten können.

SharePoint

SharePoint

SharePoint ist ein webbasiertes Kollaborationssystem, das eine Vielzahl von Workflow-Anwendungen, „Listen“-Datenbanken und anderen Webkomponenten sowie Sicherheitsfunktionen verwendet, um die Zusammenarbeit von Unternehmensgruppen zu steuern.

Ewiger Kalender 1.0.38/1.0.36

Ewiger Kalender 1.0.38/1.0.36

Van Nien Calendar ist eine Kalenderanzeigeanwendung auf Ihrem Telefon, die Ihnen hilft, schnell das Monddatum auf Ihrem Telefon zu sehen und so Ihre wichtige Arbeit zu ordnen.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook ist eine Geschäfts- und Produktivitätsanwendung, die von der Microsoft Corporation entwickelt wurde.

ClickUp

ClickUp

ClickUp ist eine der am höchsten bewerteten Produktivitätsplattformen für jedes Unternehmen. Große Unternehmen wie Google, Booking.com, San Diego Padres und Uber nutzen ClickUp, um die Produktivität am Arbeitsplatz zu steigern.

PDF-XChange Viewer 2.5.322.10

PDF-XChange Viewer 2.5.322.10

PDF ist zu einem häufig verwendeten Format zum Lesen, Erstellen und Senden von Textdokumenten geworden. Im Gegenzug hat die Zahl der für diese Art der Dokumentation eingesetzten Programme zugenommen. PDF-XChange Viewer gehört zu einer wachsenden Zahl von PDF-Viewern.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice bietet eine vollständige Suite von Office-Anwendungen, die mit Microsoft 365 konkurrieren können, insbesondere in Excel, PowerPoint und Word. Es ermöglicht Ihnen eine effektivere Verwaltung Ihrer Projekte und unterstützt mehrere Dateiformate.

Laden Sie iTaxviewer 1.8.7 herunter

Laden Sie iTaxviewer 1.8.7 herunter

Die iTaxViewer-Software ist heute die beliebteste Software zum Lesen von XML-Dateien. Bei dieser Software handelt es sich um eine Anwendung zum Lesen elektronischer Steuererklärungen im XML-Format des General Department of Taxation.

Nitro PDF Reader

Nitro PDF Reader

Nitro PDF Reader ist ein praktischer PDF-Editor, der alle grundlegenden Aufgaben abdeckt, die die meisten Menschen täglich mit PDF-Dokumenten ausführen.

Foxit Reader 12

Foxit Reader 12

Foxit Reader ist in erster Linie ein PDF-Reader und ermöglicht Ihnen außerdem, PDF-Dateien zu erstellen, sie zu signieren, zu bearbeiten und Anmerkungen hinzuzufügen. Es funktioniert auf Betriebssystemen, es gibt Plugins für verschiedene Programme aus dem Microsoft Office-Paket.