Variables and Data Types
Swipe um das Menü anzuzeigen
Jedes von Ihnen geschriebene Verfahren benötigt einen Ort, um Werte während der Ausführung zu speichern – beispielsweise den Namen eines Kunden, eine laufende Summe oder ein Ja/Nein-Kennzeichen. Genau das ist eine Variable: eine beschriftete Box im Speicher, in die Sie einen Wert legen und später wieder auslesen können. Sie erstellen eine Variable mit Dim (Abkürzung für „dimension“) und geben VBA im Voraus an, welche Art von Wert sie aufnehmen soll:
Dim productName As String
Dim currentStock As Integer
Dim unitPrice As Double
Jede Zeile reserviert einen beschrifteten Speicherplatz: productName kann nur Text aufnehmen, currentStock nur ganze Zahlen, unitPrice nur Zahlen mit Dezimalstellen. Die Angabe des Typs im Voraus ist keine reine Bürokratie – sie ermöglicht es VBA, Fehler zu erkennen, bevor daraus Bugs werden. Wenn Sie versuchen, productName = 47 auszuführen, stoppt VBA Sie sofort mit einem Typkonflikt-Fehler, anstatt stillschweigend etwas Falsches zu speichern und später für Verwirrung zu sorgen.
Gängige Datentypen
Faustregel: Verwenden Sie Long statt Integer für Zähler und Zeilennummern – in modernen Excel-Versionen ist das nicht langsamer und es kommt bei großen Datenmengen nicht zu Überläufen. Sie werden Dim i As Long in diesem Kurs überall sehen.
Option Explicit
Setzen Sie diese einzelne Zeile ganz oben in jedes Modul, vor jede Sub. Sie bewirkt Folgendes: VBA verweigert nun die Ausführung jeder Zeile, die eine Variable verwendet, die Sie nicht vorher mit Dim deklariert haben:
Option Explicit
Sub Example()
Dim total As Double
total = 100 ' works — declared above
toatl = 200 ' typo — Option Explicit catches this at compile time
End Sub
Ohne Option Explicit erzeugt dieser Tippfehler stillschweigend eine neue Variable namens toatl, und Sie fragen sich zwanzig Minuten lang, warum total sich nie ändert. Diese eine Gewohnheit verhindert mehr Fehler als alles andere in diesem Kapitel.
Konstanten
Konstanten sind benannte Werte, die sich während der Programmausführung nie ändern – ideal für Dinge wie Steuersätze oder Schwellenwerte:
Const REORDER_THRESHOLD As Integer = 20
Die Verwendung von REORDER_THRESHOLD anstelle von überall 20 einzutippen bedeutet: Wenn sich die Geschäftsregel ändert, bearbeiten Sie nur eine Zeile statt Ihren gesamten Code durchsuchen zu müssen.
Aufgabe
- In
Section_2_VBA_Fundamentals.xlsmeineSub-Prozedur schreiben, die eineString-Variable für einen Produktnamen, eineDouble-Variable für den Preis und eineInteger-Variable für den Lagerbestand deklariert. - Die Werte für
USB-C Hubdirekt zuweisen, indem die Literalwerte eingetippt werden. - Mit
MsgBoxalle drei Werte in einer Nachricht anzeigen, zusammengefügt in einer Zeichenkette. Const LOW_STOCK As Integer = 20oberhalb derSubhinzufügen und in einerMsgBoxfür den Vergleich mit der Lagerbestandsvariable verwenden.
- Es werden drei
Dim-Zeilen mit unterschiedlichen Typen benötigt — siehe Abbildung 2.1 für die Syntax:Dim name As Type. - Die Zeile für USB-C Hub hat Price 39.50, Stock 44. Diese Werte einfach direkt zuweisen:
price = 39.50. - Für die Verkettung wird
&verwendet, nicht+. Die Zeichenkette in Teilen zusammensetzen:"Name: " & productName & ", Price: " & price. - Konstanten werden außerhalb einer
Subdeklariert, ganz oben im Modul, direkt nachOption Explicit. Den Vergleich vonstockCountmitLOW_STOCKmit einem einfachen>oder<in einerMsgBox-Zeichenkette durchführen — eineIf-Anweisung ist noch nicht nötig, einfach beide Werte anzeigen, um den Vergleich zu sehen.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen