VBA
Zeichenketten deklarieren und zuweisen
Suche…
Bemerkungen
Zeichenfolgen sind ein Referenztyp und für die meisten Programmieraufgaben von zentraler Bedeutung. Zeichenfolgen wird Text zugewiesen, auch wenn der Text numerisch ist. Zeichenfolgen können eine Länge von null oder eine beliebige Länge von bis zu 2 GB haben. Moderne Versionen von VBA speichern Strings intern mit einem Byte-Array aus Bytes mit mehreren Byte-Zeichensätzen (Alternative zu Unicode).
Deklarieren Sie eine String-Konstante
Const appName As String = "The App For That"
Deklarieren Sie eine Stringvariable mit variabler Breite
Dim surname As String 'surname can accept strings of variable length
surname = "Smith"
surname = "Johnson"
Deklarieren und weisen Sie eine Zeichenfolge mit fester Breite zu
'Declare and assign a 1-character fixed-width string
Dim middleInitial As String * 1 'middleInitial must be 1 character in length
middleInitial = "M"
'Declare and assign a 2-character fixed-width string `stateCode`,
'must be 2 characters in length
Dim stateCode As String * 2
stateCode = "TX"
Deklarieren Sie und weisen Sie ein String-Array zu
'Declare, dimension and assign a string array with 3 elements
Dim departments(2) As String
departments(0) = "Engineering"
departments(1) = "Finance"
departments(2) = "Marketing"
'Declare an undimensioned string array and then dynamically assign with
'the results of a function that returns a string array
Dim stateNames() As String
stateNames = VBA.Strings.Split("Texas;California;New York", ";")
'Declare, dimension and assign a fixed-width string array
Dim stateCodes(2) As String * 2
stateCodes(0) = "TX"
stateCodes(1) = "CA"
stateCodes(2) = "NY"
Weisen Sie mithilfe der Mid-Anweisung bestimmte Zeichen innerhalb einer Zeichenfolge zu
VBA bietet eine Mid-Funktion für die Rückgabe von Teilstrings innerhalb eines Strings, aber auch das Mid- Statement, mit dem Sie Teilstrings oder einzelne Zeichen mit einem String zuweisen können.
Die Mid
Funktion wird normalerweise auf der rechten Seite einer Zuweisungsanweisung oder in einer Bedingung angezeigt. Die Mid
Anweisung wird jedoch normalerweise auf der linken Seite einer Zuweisungsanweisung angezeigt.
Dim surname As String
surname = "Smith"
'Use the Mid statement to change the 3rd character in a string
Mid(surname, 3, 1) = "y"
Debug.Print surname
'Output:
'Smyth
Hinweis: Wenn Sie einzelnen Bytes in einer Zeichenfolge anstelle von einzelnen Zeichen in einer Zeichenfolge zuweisen müssen (siehe Anmerkungen zum Multi-Byte-Zeichensatz), kann die MidB
Anweisung verwendet werden. In diesem Fall ist das zweite Argument für die MidB
Anweisung die 1-basierte Position des Bytes, an dem die Ersetzung beginnen soll. Die entsprechende Zeile zum obigen Beispiel wäre also MidB(surname, 5, 2) = "y"
.
Zuordnung zu und von einem Bytearray
Zeichenfolgen können Byte-Arrays direkt zugewiesen werden und umgekehrt. Denken Sie daran, dass Strings in einem Multi-Byte-Zeichensatz gespeichert werden (siehe Anmerkungen unten), sodass nur jeder andere Index des resultierenden Arrays den Teil des Zeichens darstellt, der in den ASCII-Bereich fällt.
Dim bytes() As Byte
Dim example As String
example = "Testing."
bytes = example 'Direct assignment.
'Loop through the characters. Step 2 is used due to wide encoding.
Dim i As Long
For i = LBound(bytes) To UBound(bytes) Step 2
Debug.Print Chr$(bytes(i)) 'Prints T, e, s, t, i, n, g, .
Next
Dim reverted As String
reverted = bytes 'Direct assignment.
Debug.Print reverted 'Prints "Testing."