vba data types numeric
Unterschied zwischen b und b + Baum
In diesem Lernprogramm werden verschiedene numerische und nicht numerische Datentypen erläutert, die in VBA verfügbar sind. Wir werden auch mehr über Datentypkonvertierungen erfahren ::
Wir stoßen jeden Tag auf viele Arten von Daten wie Name, Datum, Rechnungen, Preis einer Ware usw. Alle diese Daten gehören zu einem bestimmten Typ und ihre Werte können nicht von dem Typ abweichen, der mit ihr verbunden ist. In ähnlicher Weise verfügt VBA über viele Datentypen, die zum Ausführen der erforderlichen Aktion verwendet werden.
In diesem Tutorial lernen wir die verschiedenen Arten von Daten kennen, die in VBA verwendet werden, und sehen, wie diese bei der Organisation unseres Programms helfen. Wir werden uns auch mit der Konvertierung eines Datentyps in einen anderen Datentyp befassen.
=> Überprüfen Sie ALLE VBA-Tutorials hier
Was du lernen wirst:
- Kategorien von Datentypen
- Fazit
Kategorien von Datentypen
Der Datentyp teilt dem Computer den Datentyp mit, der mithilfe einer Variablen gespeichert werden muss. Datentypen werden in zwei Kategorien unterteilt, d. H. Numerische und nicht numerische Datentypen
Numerische Datentypen
Diese Typen werden verwendet, um mathematische Operationen wie Addition, Subtraktion usw. auszuführen. Beispiel, Prozentberechnung, Aktienkurs, Gebühren, Rechnungen, Alter usw.
In VBA gibt es 7 Arten von numerischen Datentypen, wie unten erwähnt.
Numerischer Datentyp | |
---|---|
7 | Dezimal |
1 | Byte |
zwei | Ganze Zahl |
3 | Lange |
4 | Single |
5 | Doppelt |
6 | Währung |
Lassen Sie uns einen kurzen Blick auf alle numerischen Datentypen werfen.
# 1) Byte-Datentyp
Dieser Datentyp benötigt nur ein Byte Speicher. Variablen mit dem Datentyp Byte können Werte von 0 bis 255 speichern. Der Standardbytewert ist 0. Negative Werte und Werte größer als 255 sind nicht zulässig. Wenn Sie versuchen, ungültige Werte zuzuweisen, wird ein Überlauffehler zurückgegeben.
Syntax: Dim Vname As Byte
Hier ist Vname ein Variablenname und Byte ist der Datentyp der Variablen.
Beispiel:
Sub ByteDTtest() Dim vname1 As Byte vname1 = 10 MsgBox 'Value of vname1 is : “ &vname1 End Sub
Die Ausgabe ist unten angegeben
# 2) Integer-Datentyp
Diese Datentypen werden verwendet, um den gesamten ganzzahligen Wert zu speichern. Dies belegt 2 Bytes Speicher. Eine Ganzzahl ist einer der häufig verwendeten Datentypen. Sie akzeptieren sowohl positive als auch negative Werte und Null. Sie haben einen Bereich zwischen -32.768 bis 32.767.
Syntax: Dim zündet als Ganzzahl
Beispiel:
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Die Ausgabe ist unten angegeben
# 3) Langer Datentyp
Dies ist eine Alternative zu einem ganzzahligen Datentyp, der auch einen ganzen ganzzahligen Wert speichert. Es belegt jedoch mehr Speicher als eine Ganzzahlvariable mit 4 Byte. Es hat einen Wertebereich von -2.147.483.648 bis 2.147.483.648
Syntax: Dim vname As Long
Sub IntDTtest() Dim vname1, vname2 As Integer vname1 = 10 vname2 = -20 MsgBox 'Value of Integer variable is ' & vname1 & ' and ' & vname2 End Sub
Wenn Sie den obigen Code mit einer Ganzzahlvariablen ausführen, wird ein Überlauffehler angezeigt, da 1048576 Zeilen in Excel vorhanden sind und der Datentyp Integer nur bis 32.767 unterstützt. Wie unten gezeigt, wird bei einem langen Datentyp ein geeignetes Ergebnis angezeigt.
Wenn der Datentyp jedoch eine Ganzzahl ist, wird ein Überlauffehler ausgelöst.
# 4) Dezimaldatentyp
Dies ist ein exakter numerischer Datentyp, der für seine Genauigkeit verwendet wird. Dies ist die Gesamtzahl der Stellen und die Anzahl der Stellen rechts vom Dezimalpunkt, die als Skalierungsfaktor bezeichnet werden.
In VBA werden Zahlen mit einer Potenz von 10 skaliert. Es ist angebracht, diese Typen zu verwenden, während große Zahlen bearbeitet werden, die einen genauen Wert benötigen. Dies belegt 14 Bytes im Speicher.
Variablen können jedoch nicht direkt als dezimaler Datentyp deklariert werden. Um Decimal verwenden zu können, müssen Sie die CDec-Konvertierungsfunktion verwenden. Sie müssen einen Variant-Datentyp verwenden.
Dieser Datentyp enthält den folgenden Wertebereich.
+/- 79.228.162.514.264.337.593.543.950.335 ohne Dezimalpunkt
+/- 7.9228162514264337593543950335 mit 28 Dezimalstellen rechts von der Dezimalstelle.
Der kleinste akzeptierte Wert ungleich Null ist +/- 0,0000000000000000000000000001.
Syntax: Dim zündet als Variante
Sub DecimalDataTypeTest() Dim DecValue As Variant DecValue = CDec(1000.4560323034) MsgBox 'Data type of Decvalue variable is : ' & TypeName(DecValue) & ' value ' & DecValue End Sub
Hinweis: Die TypeName-Funktion gibt den Datentypnamen an
Ausgabe:
# 5) Einzelner Datentyp
Dieser Datentyp wird zum Speichern von Zahlen mit Gleitkommazahlen mit einfacher Genauigkeit verwendet. Es belegt 4 Byte Speicher. Der Standardwert ist 0 und speichert Dezimalwerte. Sie können das Ausrufezeichen (!) Verwenden, während Sie eine Variable deklarieren, wie in der folgenden Syntax gezeigt.
Der akzeptierte Wertebereich ist:
3.402823E38 bis -1.401298E-45 für negative Werte
1.401298E-45 bis 3.402823E38 für positive Werte.
Syntax
Dim VariableName als Single
oder
Dim Variablenname!
Sub SingleDataTypeTest() Dim SingleVal1 As Single Dim SingleVal2! SingleVal1 = 123 SingleVal2 = 333.44 MsgBox ('Data type of SingleVal1 is ' & TypeName(SingleVal1) & ' with value ' & SingleVal1 & ' and datatype of SingleVal2 is ' & TypeName(SingleVal2) & ' with value ' & SingleVal2) End Sub
# 6) Doppelter Datentyp
Die Double VBA-Daten können verwendet werden, um sowohl Ganzzahlen als auch Brüche zu speichern. Double wird zum Speichern von Zahlen mit Gleitkomma mit doppelter Genauigkeit verwendet. Es belegt 8 Byte Speicher und hat einen Wertebereich.
-1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte
4.94065645841247E-324 bis 1.79769313486232E308 für positive Werte
Wie der Datentyp Single kann double auch mit einem Symbol deklariert werden, das Hash (#) ist (siehe unten).
Syntax
Dim VariableName als Double
oder
Dim VariableName #
Sub DoubleDataTypeTest() Dim douValue As Double Dim douVal1# douValue = 100.21 douVal1 = 333.44 MsgBox ('Data type of douValue is ' & TypeName(douValue) & ' with value ' & douValue & ' and datatype of douVal1 is ' & TypeName(douVal1) & ' with value ' & douVal1) End Sub
# 7) Währungsdatentyp
Dieser Datentyp kann bis zu 8 Byte Speichergröße benötigen. Diese Art von Daten liefert einen genauen Wert, im Gegensatz zu den bereits diskutierten einfachen und doppelten Datentypen, die bereits gerundet sind. Diese sind nützlich für monetäre Berechnungen.
Der Währungsdatentyp kann sowohl positive als auch negative Werte speichern. Diese können 15 Stellen links von der Dezimalstelle und 4 Stellen rechts von der Dezimalstelle speichern.
Der zulässige Bereich liegt zwischen -922.337.203.685.477.5808 und 922.337.203.685.477.5807. Mit @ können Sie Währungsdatentypen deklarieren.
Syntax
Variablenname als Währung dimmen
oder
Dim VariableName @
Sub CurrencyDataTypeTest() Dim val1 As Currency Dim Val2@ val1 = 123 Val2 = 333.44 MsgBox ('Data type of Val1 is ' & TypeName(val1) &” with value “ &val1 & ' and datatype of Val2 is ' & TypeName(Val2) & “ with value “ &val2) End Sub
Ausgabe:
Hinweis ::Wenn der Wert der Variablen den angegebenen Bereich für einen bestimmten Datentyp überschreitet, wird ein Überlauffehler ausgegeben.
Betrachten Sie das einfache Beispiel für den Byte-Datentyp, der seinen Bereich überschreitet. Der gleiche Fehler wird angezeigt, wenn Sie negative Werte für den Byte-Datentyp eingeben.
Nicht numerische Datentypen
Dies sind Daten, die von arithmetischen Operatoren nicht bearbeitet werden können. Sie bestehen aus Text, Zeichenfolge, Datum usw. Nachfolgend sind die in VBA unterstützten nicht numerischen Datentypen aufgeführt.
Wie finde ich den Netzwerksicherheitsschlüssel?
Nicht numerischer Datentyp | |
---|---|
7 | Variante (Zeichen) |
1 | String (feste Länge) |
zwei | String (variable Länge) |
3 | Datum |
4 | Boolescher Wert |
5 | Objekt |
6 | Variante (Zahlen) |
# 1) Boolescher Datentyp
Dieser Datentyp benötigt 2 Byte Speicher und kann nur 2 Werte speichern, d. H. TRUE oder FALSE. Mit anderen Worten, die Boolesche Variable kann nur den Wert TRUE oder FALSE erhalten, alternativ 1 oder 0. Der Standardwert einer booleschen Variablen ist False.
Syntax - Dim Vname As Boolean
Beispiel:
Sub BooleanDataTypeTest() Dim bval1 As Boolean MsgBox ('datatype of variable bval1 is :' & TypeName(bval1) & ' default value of boolean varible is ' & bval1) End Sub
# 2) Datumsdatentyp
Dieser Datentyp wird zur Darstellung von Datum und Uhrzeit verwendet. Es hat Datumsbereichswerte vom 1. Januar 0100 bis 31. Dezember 9999 und Zeitwerte von 0:00:00 bis 23:59:59 und belegt 8 Byte Speichergröße.
Syntax: Dim zündet als Datum
Sub DateDataTypeTest() Dim datetime As Date datetime = Now MsgBox 'Current date and time is ' & datetime End Sub
Hinweis: Jetzt gibt die Funktion das aktuelle Datum und die aktuelle Uhrzeit an
# 3) String-Datentyp
Dieser Datentyp wird zum Speichern des Zeichenfolgenwerts verwendet. Die Zeichenfolge ist als Folge von Zeichen definiert. Sie können also den Datentyp String zum Speichern von Text und zum Speichern von Zahlen, Sonderzeichen, s und Ereignisbereichen verwenden. Ein Zeichenfolgenwert sollte in ein doppeltes Anführungszeichen '' eingebettet werden.
Es gibt zwei Arten von String-Datentypen.
# 1) String mit variabler Länge: Dieser Typ belegt 10 Byte Speichergröße plus den für die Zeichenfolge erforderlichen Speicher, der der Zeichenfolgenlänge entspricht. Sie haben einen Bereichswert von 0 bis ungefähr 2 Milliarden.
# 2) String mit fester Länge: Es belegt den Speicher, der der Länge der Zeichenfolge selbst entspricht. Es kann zwischen 1 und ungefähr 65.400 Zeichen liegen
Syntax: Dim Vname As String
Beispiel:
Sub StringDataTypeTest() Dim sVal1 As String sVal1 = 'Text1234#$@ and Spaces:)' MsgBox 'I can accept anything ' & sVal1 End Sub
# 4) Objektdatentyp
Das Objekt hat einen Verweis auf ein Objekt eines beliebigen Typs, dh der Objektdatentyp kann auf einen beliebigen Datentyp wie Zeichenfolge, Doppel, Ganzzahl usw. verweisen. Die Objektvariable enthält nicht den Wert, sondern nur die Adresse, in der sich die Daten befinden gelagert. Es belegt 4 Byte Computerspeicher. Der Standardwert eines Objekts ist eine Nullreferenz.
Syntax: VName als Objekt dimmen
Beispiel:
Sub ObjectDataTypeTest() Dim wsActiveSheet As Object Set wsActiveSheet = ActiveSheet wsActiveSheet.UsedRange.Clear End Sub
Dadurch werden alle verwendeten Zellen im aktuellen Blatt gelöscht.
# 5) Variantendatentyp
Dies ist der universelle Datentyp von VBA. Er kann jede Art von numerischen und nicht numerischen Daten akzeptieren. Der Variantendatentyp bietet mehr Flexibilität beim Arbeiten mit Daten. Der Variantendatentyp verwendet mehr Speichergröße als jeder andere Datentyp. Wenn Sie keinen Datentyp erwähnen, behandelt VBA diesen als Variantenvariable.
Es gibt zwei Arten von Variant-Datentypen
# 1) Variante (Zahlen): Dies kann einen beliebigen numerischen Wert bis zum Bereich Double enthalten. Die Variantennummern belegen 16 Byte Speichergröße.
# 2) Variante (Zeichen): Dies kann denselben Bereich enthalten wie für Zeichenfolgen mit variabler Länge. Die Variantenzeichen belegen 22 Byte + Zeichenfolgenlänge (24 Byte auf 64-Bit-Systemen).
Syntax
Dim VName As Variant
oder
Dim VName
Beispiel:
Sub VariantDataTypeTest() Dim EmpName As Variant Dim DOB Dim Salary As Variant EmpName = 'Jofn kim' DOB = #10/3/2020# Salary = 55000 MsgBox EmpName & ' ' & DOB & ' ' & Salary End Sub
Datentypkonvertierung
Manchmal ist es erforderlich, den Datentyp einer Variablen in einen bestimmten Anwendungsfall zu konvertieren.
Beispiel: Sie rufen einen Wert aus einer Zelle ab, bei der es sich normalerweise um eine Zeichenfolge handelt, und müssen ihn daher in einen numerischen Datentyp konvertieren, bevor Sie eine arithmetische Operation ausführen. Um dies zu erreichen, verfügt VBA über Typkonvertierungsfunktionen für alle unterstützten Datentypen.
# 1) CBool
Diese Funktion wird verwendet, um einen Ausdruck in einen booleschen Datentyp zu konvertieren. Wenn der Ausdruck Null zurückgibt, gibt CBool False zurück, einen beliebigen Wert ungleich Null. CBool gibt True zurück.
Sub CBooleanTest() Dim val1 As Integer Dim strval2 As String val1 = 0 MsgBox CBool(val1) val1 = 177 MsgBox CBool(val1) strval2 = 'A' MsgBox CBool(strval2 = 'B') MsgBox CBool(strval2 'B') End Sub
Der obige Code gibt die Ergebnisse als False, True, False, True zurück.
Sie können es selbst versuchen, eine ActiveX-Steuerbefehlsschaltfläche zeichnen, mit der rechten Maustaste klicken -> Code anzeigen und den obigen Code einfügen. Klicken Sie auf die Befehlsschaltfläche und das Ergebnis wird angezeigt. (Deaktivieren Sie den Entwurfsmodus)
Ausgabe
# 2) CByte
Diese Funktion wird verwendet, um einen Ausdruck in einen Byte-Datentyp zu konvertieren. Denken Sie daran, dass nach der Konvertierung ein Überlauffehler ausgelöst wird, wenn der Bereich den für Byte zulässigen Bereich überschreitet.
Sub cbyteTest() Dim val1 As Double Dim val2 val1 = 125.5678 val2 = CByte(val1) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
Hinweis: Wenn Sie den Wert 255,56 angeben. Complier gibt einen Überlauffehler zurück
# 3) CCur
Diese Funktion konvertiert einen Ausdruck in einen Währungsdatentyp.
Sub ccurTest() Dim val1 As Integer Dim val2 val1 = 5544 val2 = CCur(val1 / 5) MsgBox ('DataType is ' & TypeName(val2) & ' and value of val2 is ' & val2) End Sub
# 4) CDate
Diese Funktion konvertiert eine Zeichenfolge in ein Datum. Angenommen, Sie rufen den Datumswert als Zeichenfolge aus einer Excel-Zelle ab und müssen ihn konvertieren, bevor Sie eine weitere Aktion ausführen. Sie können CDate verwenden.
Sub CDateTest() Dim val1, val2, val3 As String Dim Res1, Res2, Res3 val1 = '12:21' val2 = '23/09 12:12' val3 = 'Sep 23, 2020' Res1 = CDate(val1) Res2 = CDate(val2) Res3 = CDate(val3) MsgBox 'Date of val1 is : ' & Res1 & ' Date of val2 is : ' & Res2 & ' Date of val3 is ' & Res3 End Sub
# 5) CDbl
Die CDbl-Funktion wird verwendet, um einen Ausdruck in einen Double-Datentyp zu konvertieren.
Sub CDblTest() Dim val1 As String Dim val2 As Integer Dim Res1 val1 = 10000.12345 val2 = 1222.222 Res1 = CDbl(val1) Res2 = CDbl(val2) MsgBox 'Double value after converting String : ' & Res1 & ' Double value after converting Integer : ' & Res2 End Sub
# 6) CDec
Diese Funktion konvertiert einen numerischen Wert in Dezimal.
Sub CDecTest() Dim Val1 As Currency Dim Result Val1 = 1234566.56366 Result = CDec(Val1) ‘Result is 1234566.5637 MsgBox 'Decimal Data Type Value : ' & Result End Sub
# 7) CInt
Die CInt-Funktion konvertiert einen Wert in einen Integer-Datentyp.
Sub CintTest() Dim Val1 As Double Dim Result Val1 = 2345.5678 Result = CInt(Val1) 'Result is 2346 MsgBox 'Integer value of converting is : ' & Result & ' and datatype of Result is ' & TypeName(Result) End Sub
# 8) CLng
Diese Funktion wird verwendet, um einen Wert in einen langen Datentyp zu konvertieren
Fragen und Antworten zu Web-Service-Interviews
Sub cLngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 45457.35 Val2 = 45457.65 Res1 = CLng(Val1) Res2 = CLng(Val2) MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 9) CSng
Diese Funktion konvertiert einen Wert in einen einzelnen Datentyp
Sub cSngTest() Dim Val1, Val2 As Double Dim Res1, Res2 Val1 = 75.3421115 Val2 = 75.3421555 Res1 = CSng(Val1) ' Result is 75.34211. Res2 = CSng(Val2) ' Result is 75.34216. MsgBox 'Result after converting Res1 is ' & Res1 & ' and Res2 value is ' & Res2 End Sub
# 10) CStr
Diese Funktion wird verwendet, um einen numerischen Wert in einen Zeichenfolgendatentyp zu konvertieren.
Sub CStrTest() Dim Val1 As Double Dim Result Val1 = 123.123 Result = CStr(Val1) 'Result will be 123.123 MsgBox 'Result of Val1 is ' & Val1 End Sub
# 11) CVar
Diese Funktion konvertiert einen Ausdruck in einen Variant-Datentyp.
Sub CVarTest() Dim Val1 As Integer Dim Result Val1 = 1234 Result = CVar(Val1 & 1.12) ' Result will be 12341.12 MsgBox 'Result is ' & Result End Sub
Häufig gestellte Fragen
F # 1) Was ist der Standarddatentyp in VBA?
Antworten: Variante ist die Standardeinstellung. Wenn Sie keinen Datentyp einer Variablen definieren, behandelt VBA ihn als Variantenvariable / -objekt.
F # 2) Was ist ein Typ-Mismatch-Fehler?
Antworten: Dieser Fehler wird ausgelöst, wenn Sie eine Variable als einen Datentyp deklarieren und einen unangemessenen Wert zuweisen.
Beispiel: Deklarieren Sie eine Variable als Ganzzahl und geben Sie einen Textwert ein.
F # 3) Wie behebe ich einen Überlauffehler?
Antworten: Sie müssen sich auf den Bereich beziehen, für den ein bestimmter Datentyp zulässig ist, und sicherstellen, dass Sie einen Wert innerhalb des zulässigen Bereichs eingeben.
Beispiel: Byte erlaubt nur 0 bis 255. Wenn Sie einen negativen Wert oder einen v-Wert von mehr als 255 eingeben, tritt ein Überlauffehler auf.
Fazit
In diesem Tutorial haben wir etwas über VBA-Datentypen gelernt, d. H. 7 numerische und 7 nicht numerische Datentypen. Wir haben auch anhand von Beispielen erläutert, wie ein Datentyp von einem Typ in einen anderen konvertiert wird.
=> Hier finden Sie A-Z der VBA-Schulungsanleitungen
Literatur-Empfehlungen
- Excel VBA Tutorial - Einführung in VBA in Excel
- C ++ - Datentypen
- Python-Datentypen
- C # -Datentypen und -Variablen mit Beispielen
- Casting vom Typ C #: Explizite und implizite Datenkonvertierung mit Beispiel
- Array-Datentypen - int Array, Double Array, Array of Strings usw.
- MySQL-Datentypen | Was sind verschiedene Datentypen in MySQL?