So durchlaufen Sie Ihr Excel-Arbeitsblatt mit VBA

Jetzt teilen:

Manchmal ist es nützlich, ein Arbeitsblatt Zeile für Zeile zu lesen und selektiv Daten daraus zu entnehmen. Ein Beispiel unten zeigt, wie das geht.

In dem Artikel wird davon ausgegangen, dass dem Leser das Entwicklerband angezeigt wird und er mit dem VBA-Editor vertraut ist. Wenn nicht, klicken Sie auf Google "Excel Developer Tab" oder "Excel Code Window".

Im folgenden Beispiel werden die Daten bearbeitet, indem jede Zeile von E-Mail-Adressen untersucht und zu einer einzigen Adresszeile verknüpft wird. Während Excel über integrierte Transponierungsfunktionen verfügt, möchten wir mit unserem Code einige bestimmte Adressaten ausschließen und Trennzeichen hinzufügen.

Unsere Bewerbung benötigt nur ein Blatt. Kopieren Sie die folgenden Informationen in Zelle A1:

E-Mail-Adresse
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Platzieren Sie eine Schaltfläche auf dem Formular, um den Code zu starten.Platzieren Sie eine Schaltfläche auf dem Formular, um den Code zu starten

Nehmen wir an, es gäbe Hunderte dieser E-Mails statt nur fünf; wir möchten jeder E-Mail dieselbe Nachricht und dieselbe Kopie unseres Drehbuchs senden. Dafür gibt es mehrere Möglichkeiten, insbesondere durch Aufruf des E-Mail-Programms, wie beispielsweise Outlook, aus VBA-Code. Diese Übung dient jedoch zwei Zwecken:

  • Zeigen Sie, wie Sie einfach durch ein Arbeitsblatt blättern können.
  • Markieren Sie die Fähigkeit von Excel, jede Zeile zu untersuchen und darauf zu reagieren.

Der VBA-Code

Der VBA-Code verkettet alle Adressen und fügt nach jedem ein Semikolon ein, damit sie auf einmal in das Adressatenfeld der E-Mail eingefügt werden können. Sie werden aus dem Code feststellen, dass nach Prüfung der Zeilen französische ausgeschlossen werden.

Fügen Sie ein Modul ein und geben Sie Folgendes ein:

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

Der Code behält die aktive Zelle in Spalte A bei, nur die Zeilen werden fortgesetzt. Um Informationen an anderer Stelle in einer Reihe zu referenzieren, verwenden wir:

Variable = Activecell.offset(offset rows, offset columns)

Um beispielsweise einen Wert aus Spalte B in der aktiven Zeile zu erhalten, würde der Code lauten Activecell.offset (0, 1). Um den Wert von A2 zu erhalten, wenn wir in A3 sind, würde man lesen Activecell.offset (-1, 0).

Um Ihren Code zu testen, weisen Sie die Schaltfläche dem Makro „Main“ zu.

Einige Internetdienstanbieter begrenzen möglicherweise als Vorsichtsmaßnahme gegen Spam die Anzahl der E-Mails, die Sie gleichzeitig senden können. Wenn Sie diese Methode verwenden, ist es wahrscheinlich am besten, sich bei ihnen zu erkundigen, bevor Sie Hunderte von E-Mails auf einmal versenden.

Umgang mit Beschädigungen von Excel-Dateien

Beschädigung von Excel-DateienHin und wieder kommt es vor, dass Arbeitsmappen so stark beschädigt werden, dass Excel sie selbst nicht mehr wiederherstellen kann. Das ist für die meisten Excel-Nutzer, auch für Experten, eine Katastrophe. Verfügt man jedoch über ein effektives Wiederherstellungstool, lassen sich die Arbeitsmappen retten. beschädigte XLSX-Dateien einfach und schnell.

Einführung des Autors:

Felix Hooker ist ein Datenrettungsexperte in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich Reparatur- rar Korruption und SQL Recovery-Softwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX

Jetzt teilen:

Kommentare sind geschlossen.