4 Fehler, die Sie beim Programmieren von Excel-Makros mit VBA vermeiden können
Microsoft Excel ist bereits ein sehr leistungsfähiges Datenanalysetool, mit dem sich wiederkehrende Aufgaben mit Makros automatisieren können. So senden Sie E-Mails aus einer Excel-Kalkulationstabelle mithilfe von VBA-Skripts. So senden Sie E-Mails aus einer Excel-Kalkulationstabelle mithilfe von VBA-Scripts Sie können automatisierte E-Mails von Excel aus mit Collaboration Data Objects (CDO) und VBA-Skripts erstellen. Lesen Sie mehr, indem Sie einfachen Code in (VBA) schreiben. Er ist viel leistungsfähiger. Bei falscher Verwendung kann VBA jedoch viele Probleme verursachen.
Auch wenn Sie kein Programmierer sind, bietet VBA einfache Funktionen, mit denen Sie Ihren Tabellen einige wirklich beeindruckende Funktionen hinzufügen können!
Ob Sie ein VBA-Guru sind und Dashboards in Excel erstellen. Erstellen Sie Ihr eigenes Wetter-Dashboard in dieser Google Spreadsheet-Meisterklasse. Erstellen Sie Ihr eigenes Wetter-Dashboard in dieser Google-Spreadsheet-Meisterklasse. Möchten Sie aus Ihrem Google Drive-Konto ein intelligentes Wetteranalysesystem machen und eine Star Trek-Fantasie leben? OK! Weitere Informationen oder Neulinge, die nur wissen, wie man einfache Skripts schreibt, die grundlegende Zellberechnungen durchführen, können Sie einfachen Programmiertechniken folgen, mit denen Sie die Chancen verbessern, sauberen und fehlerfreien Code zu schreiben.
Erste Schritte mit VBA
Wenn Sie noch nicht in VBA in Excel programmiert haben, ist es ziemlich einfach, die Developer-Tools dazu zu aktivieren. Geh einfach zu Datei > Optionen und dann Band anpassen. Bewegen Sie einfach die Entwickler Befehlsgruppe aus dem linken Bereich nach rechts.
Stellen Sie sicher, dass das Kontrollkästchen aktiviert ist. Jetzt wird die Registerkarte "Entwickler" in Ihrem Excel-Menü angezeigt.
Der einfachste Weg, um an dieser Stelle in das Code-Editor-Fenster zu gelangen, ist das Klicken auf das Code anzeigen Taste unter Steuerelemente im Entwicklermenü.
1. Schreckliche Variablennamen
Jetzt, da Sie sich im Codefenster befinden, ist es Zeit, mit dem Schreiben von VBA-Code zu beginnen. So können Sie mit VBA Ihre eigene einfache App erstellen. Mit VBA können Sie Ihre eigene einfache App erstellen. Für alle, die wirklich gerne schreiben könnten Ihre eigene Anwendung, aber ich habe noch nie zuvor eine einzige Codezeile eingegeben. Ich werde Sie durch die Erstellung Ihrer… Weiterlesen. Der erste wichtige Schritt in den meisten Programmen, ob in VBA oder einer anderen Sprache, ist das Definieren Ihrer Variablen.
In meinen Jahrzehnten des Schreibens von Code stieß ich auf viele Denkschulen, wenn es um variable Namenskonventionen ging, und lernte einige Dinge auf die harte Tour. Hier sind die schnellen Tipps zum Erstellen von Variablennamen:
- Machen Sie sie so kurz wie möglich.
- Machen Sie sie so beschreibend wie möglich.
- Stellen Sie ihnen einen Variablentyp vor (Boolean, Integer usw.)..
- Denken Sie daran, den richtigen Bereich zu verwenden (siehe unten)..
Hier ist ein Beispiel-Screenshot eines Programms, das ich häufig verwende, um WMIC Windows-Aufrufe von Excel aus durchzuführen, um PC-Informationen zu sammeln. So zeigen Sie alle Ihre PC-Informationen mit einem einfachen Excel-VBA-Skript an. So zeigen Sie alle Ihre PC-Informationen mit einem einfachen Excel-VBA-Skript an Nach 10 Minuten erhalten Sie detailliertere Informationen über Ihren Computer, als Sie jemals für möglich gehalten hätten. Klingt zu gut um wahr zu sein? Das ist Windows, wenn Sie wissen, wie man es benutzt. Weiterlesen .
Wenn Sie die Variablen innerhalb einer Funktion innerhalb des Moduls oder Objekts verwenden möchten (ich erkläre das unten), müssen Sie sie als deklarieren “Öffentlichkeit” Variable durch Voranstellen der Deklaration mit Öffentlichkeit. Andernfalls werden Variablen deklariert, indem sie mit dem Wort vorangestellt werden Dim.
Wenn Sie sehen, dass die Variable eine ganze Zahl ist, wird diese mit vorangestellt int. Wenn es eine Zeichenfolge ist, dann str. Dies hilft später beim Programmieren, da Sie immer wissen, welche Art von Daten die Variable enthält, indem Sie nur auf den Namen blicken. Sie werden auch bemerken, dass die Variable aufgerufen wird, wenn es so etwas wie eine Zeichenfolge gibt, die einen Computernamen enthält strComputerName.
Vermeiden Sie es, sehr verschlungene oder verwirrende Variablennamen zu erstellen, die nur Sie verstehen. Machen Sie es einem anderen Programmierer leichter, hinter Sie zu treten und zu verstehen, was das alles bedeutet!
Ein anderer Fehler, den die Leute begehen, ist, Blattnamen als Standard festzulegen “Blatt1”, “Sheet2”, etc… Dies fügt einem Programm weitere Verwirrung hinzu. Benennen Sie die Blätter stattdessen so, dass sie einen Sinn ergeben.
Auf diese Weise, wenn Sie im Excel-VBA-Code auf den Blattnamen verweisen. Automatisieren von Internet Explorer-Sitzungen mit VBA aus einer Excel-Kalkulationstabelle aus Verwenden von VBA zur Automatisierung von Internet Explorer-Sitzungen aus einer Excel-Kalkulationstabelle überraschende Möglichkeiten beim Verwenden des Visual Basic für Applikationen (VBA) -Skripts aus jeder Anwendung, die es unterstützt, wie z. B. Word, Outlook oder Excel. Lesen Sie mehr, Sie beziehen sich auf einen Namen, der Sinn macht. Im obigen Beispiel habe ich ein Blatt, auf dem ich die Netzwerkinformationen abrufe, also rufe ich das Blatt an “Netzwerk”. Wenn ich jetzt auf das Netzwerkblatt verweisen möchte, kann ich dies schnell tun, ohne nachzuschauen, um welche Blattnummer es sich handelt.
2. Brechen statt schleifen
Eines der häufigsten Probleme, die neuere Programmierer haben, hat 6 Lebensgewohnheiten, die die Programmierung Ihnen heute beibringen könnte. 6 Lebensgewohnheiten, die die Programmierung Ihnen heute beibringen könnte. Alles Wichtige, was Sie über ein erfolgreiches Leben wissen müssen, erhalten Sie von einem Computerprogramm. Glaub mir nicht Weiter lesen. Lesen Sie mehr, wenn Sie mit dem Schreiben von Code beginnen, werden Schleifen ordnungsgemäß behandelt. Und da so viele Leute, die Excel VBA verwenden, sehr viele Neulinge im Code sind, ist schlechten Loop eine Epidemie.
Schleifen kommt in Excel sehr häufig vor, da häufig Datenwerte in einer ganzen Zeile oder Spalte verarbeitet werden. Daher müssen Sie eine Schleife erstellen, um alle Werte zu verarbeiten. Neue Programmierer möchten oft einfach aus einer Schleife (entweder einer For-Schleife oder einer While-Ansicht) ausbrechen, wenn eine bestimmte Bedingung erfüllt ist.
Sie können die Komplexität des obigen Codes ignorieren. Beachten Sie, dass in der inneren IF-Anweisung eine Option zum Beenden der For-Schleife vorhanden ist, wenn die Bedingung erfüllt ist. Hier ist ein einfacheres Beispiel:
Für x = 1 bis 20 Wenn x = 6, dann Exit Für y = x + intRoomTemp Next i
Neue Programmierer gehen diesen Ansatz ein, weil es einfach ist. Wenn eine Bedingung eintritt, auf die Sie warten, um eine Schleife zu beenden, ist die Versuchung, sofort aus der Schleife zu springen, stark, aber tun Sie es nicht.
Meistens der Code, der danach kommt “brechen” ist wichtig für die Verarbeitung, auch das letzte Mal durch die Schleife vor dem Beenden. Eine sehr viel sauberere und professionellere Methode, um mit Bedingungen umzugehen, bei denen Sie eine Schleife auf halbem Weg hinterlassen möchten, besteht darin, diese Beendigungsbedingung in etwas wie eine While-Anweisung aufzunehmen.
Während (x> = 1 UND x<=20 AND x<>6) Für x = 1 bis 20 y = x + intRoomTemp Next i Wend
Dies ermöglicht einen logischen Fluss Ihres Codes. Der letzte Durchlauf, wenn x 5 ist, wird beendet, sobald die For-Schleife bis 6 gezählt wird. Keine zwingenden EXIT- oder BREAK-Befehle in der Schleife erforderlich.
3. Arrays nicht verwenden
Ein weiterer interessanter Fehler der neuen VBA-Programmierer Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Die Grundlagen der Computerprogrammierung 101 - Variablen und Datentypen Nachdem ich etwas über die objektorientierte Programmierung beschrieben und darüber gesprochen habe, dachte ich, es sei Zeit dafür die absoluten Grundlagen des Programmierens auf nicht-sprachspezifische Weise durchgehen. Diese Marke versucht, alles in zahlreichen verschachtelten Schleifen zu verarbeiten, die während des Berechnungsprozesses durch Zeilen und Spalten gefiltert werden.
Dies kann zwar funktionieren, kann jedoch zu erheblichen Leistungsproblemen führen, wenn Sie ständig dieselben Berechnungen mit denselben Zahlen in derselben Spalte durchführen müssen. Durch diese Spalte zu blättern und die Werte jedes Mal zu extrahieren, ist nicht nur langwierig für das Programmieren, es ist ein Killer für Ihren Prozessor. Eine effizientere Methode zum Umgang mit langen Listen von Zahlen ist die Verwendung eines Arrays.
Wenn Sie noch nie zuvor ein Array verwendet haben, haben Sie keine Angst. Stellen Sie sich ein Array als Eiswürfelschale mit einer bestimmten Anzahl von vor “Würfel” Sie können Informationen eingeben. Die Würfel sind von 1 bis 12 nummeriert, und so geht es Ihnen “stellen” Daten in sie.
Sie können ein Array einfach durch Eingabe definieren Dim arrMyArray (12) als Ganzzahl.
Dies schafft eine “Tablett” mit 12 verfügbaren Slots für Sie.
Ein Zeilenschleifencode ohne Array könnte folgendermaßen aussehen:
Sub Test1 () Dim x As Integer IntNumRows = Bereich ("A2", Range ("A2"). Ende (Xldown)). Rows.Count Range ("A2"). Wählen Sie für x = 1 bis IntNumRows If Range (" Ein "& str (x)). Wert < 100 then intTemp = (Range("A" & str(x)).value) * 32 - 100 End If ActiveCell.Offset(1, 0).Select Next End Sub
In diesem Beispiel wird der Code durch jede einzelne Zelle in diesem Bereich verarbeitet und die Temperaturberechnung ausgeführt.
Wenn Sie später im Programm eine andere Berechnung mit denselben Werten durchführen möchten, müssen Sie diesen Code duplizieren, alle diese Zellen nachbearbeiten und die neue Berechnung durchführen.
Wenn Sie stattdessen ein Array verwenden, können Sie die 12 Werte in der Zeile in Ihrem praktischen Speicherarray speichern. Wenn Sie später Berechnungen anhand dieser Zahlen ausführen möchten, sind sie bereits im Speicher und können sofort loslegen.
Sub Test1 () Dim x As Integer IntNumRows = Range ("A2", Range ("A2"). End (Xldown)). Rows.Count Range ("A2"). Wählen Sie For x = 1 To IntNumRows ArrMyArray (X- 1) = Range ("A" & str (x)). Value) ActiveCell.Offset (1, 0) .Wählen Sie "Next End Sub"
Das “x-1” Das Zeigen auf das Array-Element ist nur erforderlich, weil die For-Schleife bei 1 beginnt. Array-Elemente müssen bei 0 beginnen.
Sobald Ihr Array jedoch alle Werte der Zeile geladen hat, können Sie später im Programm einfach alle gewünschten Berechnungen zusammenfassen, indem Sie das Array verwenden.
Sub TempCalc () Für x = 0 Nach UBound (arrMyArray) arrMyTemps (y) = arrMyArray (x) * 32 - 100 Next End Sub
In diesem Beispiel wird das gesamte Zeilenarray durchlaufen (UBound gibt die Anzahl der Datenwerte im Array an), führt die Temperaturberechnung durch und ordnet sie dann einem anderen Array mit dem Namen arrMyTemps zu.
Sie können sehen, wie viel einfacher der zweite Berechnungscode ist. Und von diesem Zeitpunkt an ist jedes Array, wenn Sie mehr Berechnungen mit demselben Zahlensatz durchführen möchten, bereits vorgeladen und einsatzbereit.
4. Verwenden Sie zu viele Referenzen
Unabhängig davon, ob Sie in vollwertigem Visual Basic oder VBA programmieren, müssen Sie dies berücksichtigen “Verweise” Zugriff auf bestimmte Funktionen, z. B. Zugriff auf eine Access-Datenbank oder Schreiben von Ausgaben in eine Textdatei.
Referenzen sind ähnlich “Bibliotheken” gefüllt mit Funktionen, auf die Sie zugreifen können, wenn Sie diese Datei aktivieren. Sie finden Referenzen in der Entwickleransicht, indem Sie auf klicken Werkzeuge im Menü und klicken Sie dann auf Verweise.
In diesem Fenster finden Sie alle aktuell ausgewählten Referenzen für Ihr aktuelles VBA-Projekt.
Meiner Erfahrung nach kann sich die Auswahl hier von einer Excel-Installation zur anderen und von einem PC zum anderen ändern. Vieles hängt davon ab, was andere Leute mit Excel auf diesem PC gemacht haben, ob bestimmte Add-Ons oder Features hinzugefügt oder aktiviert wurden oder ob einige Programmierer in früheren Projekten bestimmte Referenzen verwendet haben.
Der Grund, warum es gut ist, diese Liste zu überprüfen, besteht darin, dass unnötige Ressourcen auf Systemressourcen verweisen. Wenn Sie keine XML-Dateimanipulation verwenden, warum sollte Microsoft XML ausgewählt bleiben? Wenn Sie nicht mit einer Datenbank kommunizieren, entfernen Sie Microsoft DAO. Wenn Sie keine Ausgabe in eine Textdatei schreiben, entfernen Sie sie Microsoft Scripting Runtime.
Wenn Sie nicht sicher sind, was diese ausgewählten Referenzen tun, drücken Sie F2 und Sie sehen den Objekt-Explorer. Oben in diesem Fenster können Sie die zu durchsuchende Referenzbibliothek auswählen.
Nach der Auswahl werden alle Objekte und verfügbaren Funktionen angezeigt, auf die Sie klicken können, um mehr darüber zu erfahren.
Wenn ich zum Beispiel auf die DAO-Bibliothek klicke, wird schnell klar, dass es vor allem darum geht, eine Verbindung zu Datenbanken herzustellen und mit ihnen zu kommunizieren.
Das Reduzieren der Anzahl von Referenzen, die Sie in Ihrem Programmierprojekt verwenden, ist nur sinnvoll und trägt dazu bei, dass Ihre gesamte Anwendung effizienter ausgeführt wird.
Programmierung in Excel VBA
Die ganze Idee, tatsächlich Code in Excel zu schreiben Zeit mit Textvorgängen in Excel sparen Zeit mit Textvorgängen in Excel sparen Excel kann mit Zahlen zaubern und mit Zeichen gleich gut umgehen. In diesem Handbuch wird veranschaulicht, wie Text in Tabellenkalkulationen analysiert, konvertiert, ersetzt und bearbeitet wird. Diese Grundlagen ermöglichen es Ihnen, komplexe Transformationen durchzuführen. Mehr lesen erschreckt eine Menge Leute, aber diese Angst ist wirklich nicht notwendig. Visual Basic für Applikationen ist eine sehr einfache zu erlernende Sprache. Wenn Sie die oben genannten grundlegenden Vorgehensweisen befolgen, stellen Sie sicher, dass Ihr Code sauber, effizient und leicht verständlich ist.
Codieren Sie in VBA? Welche Art von Lektionen haben Sie im Laufe der Jahre gelernt, die Sie mit anderen Lesern teilen können, die zum ersten Mal VBA lernen? Teilen Sie Ihre Tipps in den Kommentaren weiter unten!
Bildnachweise: Computer von www.BillionPhotos.com über Shutterstock, Bunte Eiswürfel von hahauk über Shutterstock.com
Erfahren Sie mehr über: Microsoft Excel, Programmierung, Visual Basic-Programmierung.