So bearbeiten Sie Daten in Excel mit VBA

Microsoft Excel ist ein leistungsstarkes Tool, das zur Datenbearbeitung verwendet werden kann. Um die Software optimal nutzen zu können, müssen Sie VBA verwenden. Mit Visual Basic für Applikationen oder VBA können Excel-Benutzer Makros erstellen, die leistungsstarke, zeitsparende benutzerdefinierte Funktionen für die Datenbearbeitung und -analyse darstellen.

Makros verarbeiten VBA-Code, um große Datenmengen zu verwalten, deren Änderung andernfalls viel Zeit in Anspruch nehmen würde. Mit VBA können Sie beispielsweise ein Makro erstellen, um bestimmte Felder automatisch zu formatieren, die Ihren festgelegten Kriterien entsprechen.

Unten sehen Sie ein Beispiel für ein in Excel verwendetes VBA-Skript:

Sub ConfigureLogic ()

Dim qstEntries

Dim dqstEntries

Dim qstCnt, dqstCnt

qstEntries = Range ("QualifiedEntry"). Count

qst = qstEntries - WorksheetFunction.CountIf (Range ("QualifiedEntry"), "")

ReDim QualifiedEntryText (qst)

'MsgBox (qst)

dqstEntries = Range ("DisQualifiedEntry"). Count

dqst = dqstEntries - WorksheetFunction.CountIf (Range ("DisQualifiedEntry"), "")

ReDim DisqualifiedEntryText (dqst)

'MsgBox (dqst)

Für qstCnt = 1 Nach qst

QualifiedEntryText (qstCnt) = ThisWorkbook.Worksheets ("Qualifiers"). Range ("J" & 8 + qstCnt) .value

'MsgBox (QualifiedEntryText (qstCnt))

Protokollierung ("Konfigurierter qualifizierter Eintrag Eintrag #" & qstCnt & "als {" & QualifizierterEntryText (qstCnt) & "}")

Nächster

For dqstCnt = 1 To dqst

DisqualifiedEntryText (dqstCnt) = ThisWorkbook.Worksheets ("Qualifiers"). Range ("M" & 8 + dqstCnt) .value

'MsgBox (DisqualifiedEntryText (dqstCnt))

Protokollierung ("Configured DisQualified Entry entry #" & qstCnt & "as {" & DisqualifiedEntryText (dqstCnt) & "}")

Nächster

includeEntry = ThisWorkbook.Worksheets ("Qualifiers"). Range ("IncludeSibling"). value

'MsgBox (includeEntry)

Protokollierung ("Einträge in Suche enthalten -" & includeEntry)

End Sub

Analysieren und Bearbeiten von Einträgen in einer Tabelle

Um VBA für die Datenanalyse zu verwenden, müssen Sie die Einstellungen in Excel für das Developer Tool überprüfen. Um es zu finden, suchen Sie die Excel-Multifunktionsleiste und suchen Sie nach der Registerkarte Entwickler . Wenn es nicht angezeigt wird, müssen Sie es im Menü Excel- Einstellungen aktivieren.

Erstellen Sie als Nächstes ein neues Arbeitsblatt und nennen Sie es "Qualifikatoren". Wir werden dieses Blatt verwenden, um nach allen Dingen zu suchen, die die Auswahl qualifizieren.

Als nächstes richten Sie die Qualifikationsmerkmale auf dem Blatt gemäß dem Code ein. Es muss manuell eingegeben werden; Ausschneiden und Einfügen funktioniert nicht.

ThisWorkbook.Worksheets ("Qualifiers"). Range ("J" & 8 + qstCnt) .value

So lokalisieren Sie den Bereich und konstruieren ein Array

Der Bereich in der obigen Funktion ist Zelle J9. Die Range-Funktion notiert eine 8; Der tatsächliche Bereich ist jedoch 9, weil:

 Für qstCnt = 1 Nach qst 

Die obige Anweisung beginnt bei 1 und nicht bei 0. Daher beginnt die Liste bei 9. In diesem Fall ist zu beachten (qstCnt = 1).

Platzieren Sie zufällige Wörter in den Zellen J9-J13, um ein Array aus Einträgen in dem Qualifiers-Arbeitsblatt zu erstellen. Sobald die Zeilen fertig sind, können wir mit dem Suchen und Bearbeiten von Daten in Excel fortfahren.

 Private Unterzählblätter ()

Blattanzahl verdunkeln

WS als Arbeitsblatt dimmen

Blattanzahl = 0

Protokollierung ("***** Scrub starten *********")

Für jedes WS in ThisWorkbook.Worksheets

Blattanzahl = Blattanzahl + 1

Wenn WS.Name = "Ausgewählt", dann

'müssen das Datum und die Uhrzeit in Blatt mit dem Namen "Protokollierung" protokollieren

ActionCnt = ActionCnt + 1

Protokollierung ("Calling Sheet:" & WS.Name)

Scrubsheet (Blattanzahl)

Sonst

ActionCnt = ActionCnt + 1

Protokollierung ("Blatt übersprungen:" & WS.Name)

End If

Nächstes WS

'MsgBox ("Endung")

ActionCnt = ActionCnt + 1

Protokollierung ("**** Scrub DONE!")

Application.ScreenUpdating = True

End Sub

Es gibt ein Beispiel für einen Arbeitsregisterzähler.

Blattanzahl verdunkeln

WS als Arbeitsblatt dimmen

Blattanzahl = 0

Protokollierung ("***** Scrub starten *********")

Für jedes WS in ThisWorkbook.Worksheets

Blattanzahl = Blattanzahl + 1

Stellen Sie nach dem Initialisieren des Blattzählers den Wert 0 ein, um den Zähler neu zu starten.

Logging () ist eine weitere Unterroutine, die alle Aktionen protokolliert, um die Auswahl zu überwachen.

Die nächste For-Schleife richtet die aktive Arbeitsmappe zum Zählen ein. WS ist das initialisierte und ThisWorkbook. Arbeitsblätter ist die aktive Registerkarte im Buch. Da wir die Arbeitsmappe nicht benannt haben, wird dieses Modul auf jeder aktiven Arbeitsmappe ausgeführt. Wenn Sie an mehreren Arbeitsmappen arbeiten und die falsche aktiviert ist, wird versucht, sie auszuführen. Treffen Sie Vorsichtsmaßnahmen, um Fehler zu vermeiden, und benennen Sie Ihre spezifische Arbeitsmappe oder bearbeiten Sie jeweils nur eine.

Jedes Mal, wenn die Schleife ausgelöst wird, wird der Blattanzahl eine Variable hinzugefügt, um die Anzahl der Registerkarten zu verfolgen. Dann bewegen wir uns zu:

 Wenn WS.Name = "Ausgewählt", dann

'müssen das Datum und die Uhrzeit in Blatt mit dem Namen "Protokollierung" protokollieren

ActionCnt = ActionCnt + 1

Protokollierung ("Calling Sheet:" & WS.Name)

Scrubsheet (Blattanzahl)

Sonst

ActionCnt = ActionCnt + 1

Protokollierung ("Blatt übersprungen:" & WS.Name)

End If

Hier suchen wir nach der Registerkarte Ausgewählt.

Wenn die Variable WS gleich Selected ist, protokollieren wir sie und lösen das Unterprogramm Scrub Sheet aus. Wenn die Variable WS nicht gleich Selected ist, wird protokolliert, dass dieses Blatt übersprungen wurde, und die Aktion wird gezählt. Der obige Code ist ein Beispiel dafür, wie die Anzahl einer bestimmten Registerkarte gezählt und diese gefunden wird.

Die folgende Auflistung zeigt die verschiedenen Methoden, mit denen Daten bearbeitet werden können!

Habe Spaß!

So zählen Sie die Anzahl der Blätter in einer Arbeitsmappe

 Dim TAB

Für jedes TAB in ThisWorkbook.Worksheets

'etwas Routine hier

Nächster

Suchen Sie die letzte Zeile, Spalte oder Zelle in einem Arbeitsblatt

 Cellcount verdunkeln

cellcount = Cells (ThisWorkbook.Worksheets ("Arbeitsblatt"). Rows.Count, 1) .End (xlUp) .Row

Filtern nach erweiterten Kriterien

 Bereich ("A2: Z99"). Sortierschlüssel1: = Bereich ("A5"), Reihenfolge1: = xlAscending, Header: = xlNo 

Wenden Sie die Auto-Fit-Eigenschaft auf eine Spalte an

 Spalten ("A: A"). EntireColumn.AutoFit 

Abrufen von Werten aus einem anderen Arbeitsblatt

 neuen Wert dimmen

newvalue = ThisWorkbook.Worksheets ("Arbeitsblatt"). Range ("F1"). value

Einfügen einer Spalte in ein Arbeitsblatt

 Dim Row, Column

Zellen (Zeile, Spalte) .EntireColumn.Select

Auswahl einfügen

Fügen Sie mehrere Spalten in ein Arbeitsblatt ein

 Dimmen insertCnt

Dim Row, Column

Für insertCnt = 1 bis N

ThisWorkbook.Worksheets ("Arbeitsblatt"). Wählen Sie

Zellen (Zeile, Spalte) .EntireColumn.Select

Auswahl einfügen

Nächster

Hinzufügen eines benannten Bereichs zu einem bestimmten Blatt

 ThisWorkbook.Worksheets ("Arbeitsblatt"). Names.Add Name: = "Status", RefersToR1C1: = "= Arbeitsblatt! C2"

Fügen Sie eine gesamte Zeile in ein Arbeitsblatt ein

 Dim Row, Column

Zellen (Zeile, Spalte) .EntireRow.Select

Auswahl einfügen

Kopieren Sie eine gesamte Zeile zum Einfügen

 ActiveSheet.Range ("A1"). EntireRow.Select

Auswahl.Kopieren

Löschen Sie eine gesamte Zeile

 ActiveSheet.Range ("A1"). EntireRow.Select

Auswahl löschen

Wählen Sie ein bestimmtes Blatt aus

 ThisWorkbook.Worksheets ("Arbeitsblatt"). Wählen Sie 

Werte eines Bereichs vergleichen

 Dim firstrange

Dim Logictest

Logictest = "irgendein Wort oder Wert"

Wenn (Range (firstrange) .value = Logictest) dann

'etwas Routine hier

End If

Bild: © Microsoft.

Vorherige Artikel Nächster Artikel

Top-Tipps