Zoeken…


Opmerkingen

Strings zijn van het referentietype en staan centraal in de meeste programmeertaken. Aan strings wordt tekst toegewezen, zelfs als de tekst numeriek is. Strings kunnen nul-lengte zijn of elke lengte tot 2 GB. Moderne versies van VBA slaan Strings intern op met behulp van een Byte-array van Multi-Byte-tekensetbytes (een alternatief voor Unicode).

Verklaar een stringconstante

Const appName As String = "The App For That"

Declareer een tekenreeksvariabele met variabele breedte

Dim surname As String 'surname can accept strings of variable length
surname = "Smith"
surname = "Johnson"

Declareer en wijs een string met vaste breedte toe

'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"

Declareer en wijs een stringarray toe

'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"

Wijs specifieke tekens toe binnen een tekenreeks met behulp van de instructie Mid

VBA biedt een Mid-functie voor het retourneren van substrings binnen een string, maar biedt ook de Mid- instructie die kan worden gebruikt om substrings of individuele tekens binnen een string toe te wijzen.

De functie Mid verschijnt meestal aan de rechterkant van een toewijzingsopdracht of in een staat, maar de Mid instructie wordt meestal links van een toewijzingsinstructie weergegeven.

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

Opmerking: Als u afzonderlijke bytes in een string moet toewijzen in plaats van individuele karakters binnen een string (zie de opmerkingen hieronder met betrekking tot de Multi-Byte- MidB ), kan de instructie MidB worden gebruikt. In dit geval is het tweede argument voor de MidB instructie de op 1 gebaseerde positie van de byte waar de vervanging begint, zodat de equivalente regel voor het bovenstaande voorbeeld MidB(surname, 5, 2) = "y" .

Toewijzing van en naar een bytearray

Strings kunnen direct worden toegewezen aan byte-arrays en visa-versa. Onthoud dat tekenreeksen worden opgeslagen in een multi-byte tekenset (zie opmerkingen hieronder), zodat alleen elke andere index van de resulterende array het deel van het teken is dat binnen het ASCII-bereik valt.

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."


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow