Buscar..


Observaciones

Las cadenas son un tipo de referencia y son fundamentales para la mayoría de las tareas de programación. Se asigna texto a las cadenas, incluso si el texto resulta ser numérico. Las cadenas pueden ser de longitud cero, o cualquier longitud de hasta 2GB. Las versiones modernas de VBA almacenan cadenas internamente utilizando una matriz de bytes de bytes de conjuntos de caracteres de múltiples bytes (una alternativa a Unicode).

Declara una cadena constante

Const appName As String = "The App For That"

Declara una variable de cadena de ancho variable

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

Declara y asigna una cadena de ancho fijo

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

Declara y asigna una cadena de cadenas

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

Asigna caracteres específicos dentro de una cadena usando la instrucción Mid

VBA ofrece una función Mid para devolver subcadenas dentro de una cadena, pero también ofrece Mid Statement que se puede usar para asignar subcadenas o caracteres individuales dentro de una cadena.

La función Mid aparece normalmente en el lado derecho de una declaración de asignación o en una condición, pero la declaración Mid aparece normalmente en el lado izquierdo de una declaración de asignación.

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

Nota: Si necesita asignar bytes individuales en una cadena en lugar de caracteres individuales dentro de una cadena (consulte las observaciones a continuación sobre el conjunto de caracteres de múltiples bytes), se puede usar la declaración MidB . En este caso, el segundo argumento para la declaración MidB es la posición basada en 1 del byte donde se iniciará la sustitución, por lo que la línea equivalente al ejemplo anterior sería MidB(surname, 5, 2) = "y" .

Asignación ay desde una matriz de bytes

Las cadenas pueden asignarse directamente a matrices de bytes y viceversa. Recuerde que las cadenas se almacenan en un conjunto de caracteres de múltiples bytes (consulte las Notas a continuación), por lo que solo el resto del índice de la matriz resultante será la parte del carácter que se encuentra dentro del rango 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow