VBA
Förklara och tilldela strängar
Sök…
Anmärkningar
Strängar är en referenstyp och är centrala för de flesta programmeringsuppgifter. Strängar tilldelas text, även om texten råkar vara numerisk. Strängar kan vara noll-längd eller valfri längd upp till 2 GB. Moderna versioner av VBA-butiken Strängar internt med hjälp av en Byte-grupp med Multi-Byte Character Set-byte (ett alternativ till Unicode).
Förklara en sträng konstant
Const appName As String = "The App For That"
Förklara en variabel breddsträngvariabel
Dim surname As String 'surname can accept strings of variable length
surname = "Smith"
surname = "Johnson"
Förklara och tilldela en sträng med fast bredd
'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"
Förklara och tilldela en stränguppsättning
'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"
Tilldela specifika tecken i en sträng med Mid-sats
VBA erbjuder en Mid-funktion för att returnera underlag i en sträng, men den erbjuder också Mid Statement som kan användas för att tilldela underlag eller enskilda tecken med en sträng.
Den Mid
funktionen vanligtvis visas på höger sida i en tilldelningssats eller i ett tillstånd, men Mid
Statement visas vanligtvis på vänster sida i en tilldelningssats.
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
Obs: Om du behöver tilldela enskilda byte i en sträng istället för enskilda tecken i en sträng (se anmärkningarna nedan angående Multi-Byte-teckenuppsättningen) kan MidB
uttalandet användas. I det här fallet är det andra argumentet för MidB
uttalandet den 1-baserade positionen för byten där ersättningen startar så att den ekvivalenta linjen till exemplet ovan skulle vara MidB(surname, 5, 2) = "y"
.
Tilldelning till och från en byte-grupp
Strängar kan tilldelas direkt till byte-matriser och visa-versa. Kom ihåg att strängar lagras i en teckenuppsättning med flera byte (se anmärkningar nedan) så att bara alla andra index i den resulterande matrisen kommer att vara den del av tecknet som faller inom ASCII-intervallet.
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."