Szukaj…


Uwagi

Ciągi znaków są typem odniesienia i są kluczowe dla większości zadań programistycznych. Ciągom przypisywany jest tekst, nawet jeśli tekst jest numeryczny. Ciągi mogą mieć długość zerową lub dowolną długość do 2 GB. Nowoczesne wersje VBA przechowują ciągi wewnętrznie za pomocą tablicy bajtów wielobajtowych zestawów znaków (alternatywa dla Unicode).

Zadeklaruj stałą ciągu

Const appName As String = "The App For That"

Zadeklaruj zmienną łańcuchową o zmiennej szerokości

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

Zadeklaruj i przypisz ciąg o stałej szerokości

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

Zadeklaruj i przypisz tablicę ciągów

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

Przypisz określone znaki w ciągu za pomocą instrukcji Mid

VBA oferuje funkcję Mid dla powrocie podciągi ciągu znaków, ale oferuje również oświadczenie Mid który może być używany do przypisania podciągi lub poszczególnych znaków withing ciąg.

Funkcja Mid zwykle pojawia się po prawej stronie instrukcji przypisania lub w stanie, ale instrukcja Mid zwykle pojawia się po lewej stronie instrukcji przypisania.

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

Uwaga: Jeśli chcesz przypisać poszczególne bajty w ciągu zamiast pojedynczych znaków w ciągu (patrz uwagi poniżej dotyczące zestawu znaków MidB ), można MidB instrukcji MidB . W tym przypadku drugim argumentem instrukcji MidB jest 1-bajtowa pozycja bajtu, w której rozpocznie się zamiana, więc wierszem równoważnym do powyższego przykładu będzie MidB(surname, 5, 2) = "y" .

Przypisanie do iz tablicy bajtów

Ciągi można przypisywać bezpośrednio do tablic bajtów i odwrotnie. Pamiętaj, że ciągi są przechowywane w wielobajtowym zestawie znaków (patrz uwagi poniżej), więc tylko co drugi indeks wynikowej tablicy będzie częścią znaku mieszczącą się w zakresie ASCII.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow