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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow