So verwenden Sie die For-Next-Schleifen in Excel 2016 VBA

So verwenden Sie die For-Next-Schleifen in Excel 2016 VBA

Der einfachste Schleifentyp in der Excel-VBA-Programmierung ist eine For-Next-Schleife. Die Schleife wird durch eine Zählervariable gesteuert, die bei einem Wert beginnt und bei einem anderen Wert endet. Die Anweisungen zwischen der For-Anweisung und der Next-Anweisung sind die Anweisungen, die in der Schleife wiederholt werden.

Ein For-Next-Beispiel

Im folgenden Beispiel wird eine For-Next-Schleife verwendet, um die ersten 1.000 positiven Zahlen zu summieren. Die Variable Total beginnt mit Null. Dann tritt die Schleife auf. Die Variable Cnt ist der Schleifenzähler. Es beginnt mit 1 und wird jedes Mal durch die Schleife um 1 erhöht. Die Schleife endet, wenn Cnt 1.000 beträgt.

Dieses Beispiel enthält nur eine Anweisung innerhalb der Schleife. Diese Anweisung addiert den Wert von Cnt zur Variablen Total. Wenn die Schleife beendet ist, zeigt eine MsgBox die Summe der Zahlen an.

Sub AddNumbers()
  Summe als doppelt dimmen
  Dim Cnt As Long
  Gesamt = 0
  Für Cnt = 1 bis 1000
    Gesamt = Gesamt + Cnt
  Nächster Cnt
  MsgBox Gesamt
End Sub

Da der Schleifenzähler eine normale Variable ist, können Sie Code schreiben, um seinen Wert innerhalb des Codeblocks zwischen den Anweisungen For und Next zu ändern. Dies ist jedoch eine sehr schlechte Praxis.

For-Next-Beispiele mit einem Schritt

Sie können einen Step-Wert verwenden, um einige Zählerwerte in einer For-Next-Schleife zu überspringen. Hier ist das vorherige Beispiel, umgeschrieben, um nur die ungeraden Zahlen zwischen 1 und 1.000 zu summieren:

Sub AddOddNumbers()
  Summe als doppelt dimmen
  Dim Cnt As Long
  Gesamt = 0
  Für Cnt = 1 bis 1000 Schritt 2
    Gesamt = Gesamt + Cnt
  Nächster Cnt
  MsgBox Gesamt
End Sub

Dieses Mal beginnt Cnt mit 1 und nimmt dann die Werte 3, 5, 7 usw. an. Der Step-Wert bestimmt, wie der Zähler inkrementiert wird. Beachten Sie, dass der obere Schleifenwert (1000) nicht tatsächlich verwendet wird, da der höchste Wert von Cnt 999 beträgt.

Hier ist ein weiteres Beispiel, das einen Step-Wert von 3 verwendet. Dieses Verfahren funktioniert mit dem aktiven Blatt und wendet eine hellgraue Schattierung auf jede dritte Zeile von Zeile 1 bis Zeile 100 an.

Sub ShadeEveryThirdRow()
  Dim ich so lang
  Für i = 1 bis 100 Schritt 3
    Zeilen(i).Innenraum.Farbe = RGB(200, 200, 200)
  Als nächstes
End Sub

Sehen Sie sich das Ergebnis der Ausführung dieses Makros an.

So verwenden Sie die For-Next-Schleifen in Excel 2016 VBA

Verwenden einer Schleife zum Anwenden von Hintergrundschattierung auf Zeilen.

Ein For-Next-Beispiel mit einer Exit For-Anweisung

Eine For-Next-Schleife kann auch eine oder mehrere Exit For-Anweisungen innerhalb der Schleife enthalten. Wenn VBA auf diese Anweisung stößt, wird die Schleife sofort beendet.

Das folgende Beispiel veranschaulicht die Exit For-Anweisung. Diese Routine ist eine Funktionsprozedur, die in einer Arbeitsblattformel verwendet werden soll. Die Funktion akzeptiert ein Argument (eine Variable namens Str) und gibt die Zeichen links von der ersten Ziffer zurück. Wenn das Argument beispielsweise „KBR98Z“ lautet, gibt die Funktion „KBR“ zurück.

Funktion TextPart(Str)
  Dim ich so lang
  Textteil = „“
  Für i = 1 zu Len(Str)
    If IsNumeric(Mid(Str, i, 1)) Then
      Beenden für
    Anders
      TextPart = TextPart & Mid(Str, i, 1)
    Ende Wenn
  Als nächstes
Endfunktion

Die For-Next-Schleife beginnt mit 1 und endet mit der Zahl, die die Anzahl der Zeichen in der Zeichenfolge darstellt. Der Code verwendet die Mid-Funktion von VBA, um ein einzelnes Zeichen innerhalb der Schleife zu extrahieren. Wird ein numerisches Zeichen gefunden, wird die Exit For-Anweisung ausgeführt und die Schleife vorzeitig beendet.

Wenn das Zeichen nicht numerisch ist, wird es an den zurückgegebenen Wert (der mit dem Namen der Funktion identisch ist) angehängt. Die Schleife untersucht nur dann jedes Zeichen, wenn die als Argument übergebene Zeichenfolge keine numerischen Zeichen enthält.

Ein verschachteltes For-Next-Beispiel

Sie können eine beliebige Anzahl von Anweisungen in der Schleife haben und For-Next-Schleifen in anderen For-Next-Schleifen verschachteln.

Im folgenden Beispiel wird eine verschachtelte For-Next-Schleife verwendet, um Zufallszahlen in einen Zellbereich von 12 Zeilen mal 5 Spalten einzufügen. Beachten Sie, dass die Routine die innere Schleife (die Schleife mit dem Row-Zähler) einmal für jede Iteration der äußeren Schleife (die Schleife mit dem Col-Zähler) ausführt . Mit anderen Worten, die Routine führt die Anweisung Cells(Row, Col) = Rnd 60 Mal aus.

So verwenden Sie die For-Next-Schleifen in Excel 2016 VBA

Diese Zellen wurden unter Verwendung einer verschachtelten For-Next-Schleife gefüllt.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Für Spalte = 1 bis 5
    Für Reihe = 1 bis 12
      Zellen(Reihe, Spalte) = Rnd
    Nächste Reihe
  Nächste Farbe
End Sub

Das nächste Beispiel verwendet verschachtelte For-Next-Schleifen, um ein dreidimensionales Array mit dem Wert 100 zu initialisieren. Diese Routine führt die Anweisung in der Mitte aller Schleifen (die Zuweisungsanweisung) jeweils 1.000 Mal (10 * 10 * 10) aus mit einer anderen Kombination von Werten für i, j und k:

Sub NestedLoops()
  Dim MyArray(10, 10, 10)
  Dim ich so lang
  Dim j As Long
  Dim k As Long
  Für i = 1 bis 10
    Für j = 1 bis 10
      Für k = 1 bis 10
        MyArray(i, j, k) = 100
    Nächstes k
  Nächstes j
Als nächstes
  'Andere Aussagen gehen hier
End Sub

Hier ist ein letztes Beispiel, das verschachtelte For-Next-Schleifen mit einem Step-Wert verwendet. Dieses Verfahren erstellt ein Schachbrett, indem die Hintergrundfarbe abwechselnder Zellen geändert wird.

So verwenden Sie die For-Next-Schleifen in Excel 2016 VBA

Verwenden von Schleifen zum Erstellen eines Schachbrettmusters.

Der Zeilenzähler durchläuft eine Schleife von 1 bis 8. Ein If-Then-Konstrukt bestimmt, welche verschachtelte For-Next-Struktur verwendet werden soll. Bei ungeraden Zeilen beginnt der Col-Zähler mit 2. Bei geraden Zeilen beginnt der Col-Zähler mit 1. Beide Schleifen verwenden einen Step-Wert von 2, sodass alternative Zellen betroffen sind. Zwei zusätzliche Anweisungen machen die Zellen quadratisch (genau wie ein echtes Schachbrett).

Unter MakeCheckerboard()
  Dim R so lang, C so lang
  Für R = 1 bis 8
    Wenn WorksheetFunction.IsOdd(R) Then
     Für C = 2 bis 8 Schritt 2
       Zellen(R, C).Interior.Color = 255
     Nächstes C
    Anders
     Für C = 1 bis 8 Schritt 2
       Zellen(R, C).Interior.Color = 255
     Nächstes C
    Ende Wenn
  Nächstes R
  Zeilen("1:8").RowHeight = 35
  Spalten("A:H").ColumnWidth = 6,5
End Sub

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.