Funciones de cadenas y subcadenas de VBA

VBA tiene muchas funciones de cadena que le permitirán manipular y trabajar con texto y cadenas en su código. En este tutorial, cubriremos funciones que le permitirán extraer subcadenas de cadenas, eliminar espacios de cadenas, convertir el caso de un texto o cadena, comparar cadenas y otras funciones útiles de cadena.

Extraer una subcadena

La función de cadena izquierda de VBA

La función izquierda de VBA le permite extraer una subcadena de un texto o una cadena comenzando desde el lado izquierdo. La sintaxis de la función de cadena izquierda de VBA es:

Izquierda (Cadena, Núm_de_caracteres) donde:

  • Cadena: el texto original.
  • Num_of_caracteres - Un número entero que especifica el número de caracteres que se extraerán del texto original comenzando por el principio.

El siguiente código le muestra cómo usar la función de cadena izquierda para extraer los primeros cuatro caracteres de la cadena dada:

1234567891011 Sub UsingTheLeftStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "AutomateExcel"valueTwo = Izquierda (valueOne, 4)MsgBox valueTwoEnd Sub

El resultado es:

La función de la izquierda ha extraído las primeras cuatro letras de AutomateExcel, que son Auto.

La función de cadena derecha de VBA

La función derecha de VBA le permite extraer una subcadena de un texto o una cadena comenzando desde el lado derecho. La sintaxis de la función de cadena derecha de VBA es:

Derecha (Cadena, Núm_de_caracteres) donde:

  • Cadena: el texto original.
  • Num_of_caracteres - Un número entero que especifica el número de caracteres que se extraerán del texto original comenzando por el final.

El siguiente código muestra cómo utilizar la función de cadena derecha para extraer los últimos cuatro caracteres de la cadena:

1234567891011 Sub UsingTheRightStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "AutomateExcel"valueTwo = Derecha (valueOne, 4)MsgBox valueTwoEnd Sub

El resultado es:

La Función Derecha ha extraído las últimas cuatro letras de AutomateExcel, que son xcel.

La función de cadena media de VBA

La función Mid de VBA le permite extraer una subcadena de un texto o una cadena, comenzando desde cualquier posición dentro de la cadena que especifique. La sintaxis de la función de cadena media de VBA es:

Mid (Cadena, Posición_inicial, [Núm_de_caracteres]) donde:

  • Cadena: el texto original.
  • Posición_inicial: la posición en el texto original, desde donde la función comenzará a extraerse.
  • Num_of_caracteres (Opcional) - Un número entero que especifica el número de caracteres que se extraerán del texto original comenzando desde la posición_inicial. Si está en blanco, la función MID devolverá todos los caracteres de la posición de inicio.

El siguiente código le muestra cómo usar la función de cadena media para extraer cuatro caracteres, comenzando desde la segunda posición o carácter en la cadena:

1234567891011 Sub UsingTheMidStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "AutomateExcel"valueTwo = Mid (valueOne, 2, 4)MsgBox valueTwoEnd Sub

El resultado se envía a un cuadro de mensajes:

La función Mid ha extraído las cuatro letras de AutomateExcel a partir del segundo carácter / posición / letra que son utom.

Encontrar la posición de una subcadena

La función VBA Instr String

La función VBA Instr devuelve la posición inicial de una subcadena dentro de otra cadena. Esta función distingue entre mayúsculas y minúsculas. La sintaxis de la función VBA Instr String es:

Instr ([Inicio], Cadena, Subcadena, [Comparar]) donde:

  • Comienzo (Opcional): Especifica la posición inicial desde la que se buscará la función. Si está en blanco, se utiliza el valor predeterminado de 1.
  • Cadena: el texto original.
  • Subcadena- La subcadena dentro del texto original de la que desea encontrar la posición.
  • Comparar (Opcional)- Especifica el tipo de comparación a realizar. Si está en blanco, se utiliza la comparación binaria.

-vbBinaryCompare: comparación binaria (las mayúsculas y minúsculas se consideran diferentes)
-vbTextCompare - Comparación de texto (las mayúsculas y minúsculas se consideran iguales)
-vbDatabaseCompare: comparación de la base de datos (esta opción se usa solo en Microsoft Access y es una comparación basada en la base de datos)

El siguiente código muestra cómo utilizar la función Instr String para determinar la primera aparición de la subcadena "Th" dentro de la cadena principal:

123456789101112 Sub UsingTheInstrStringFunction ()Valor de atenuación Uno como cadenaDim positionofSubstring As IntegervalueOne = "Este es el texto"positionofSubstring = InStr (1, valueOne, "Th")Debug.Print posición de la subcadenaEnd Sub

El resultado (enviado a la ventana inmediata) es:

La función Instr ha devuelto la posición de la primera aparición de la subcadena "Th", que es 1. Tenga en cuenta que esta función incluye los espacios en el recuento.

La función de cadena VBA InstrRev

La función VBA InstrRev devuelve la posición inicial de una subcadena dentro de otra cadena, pero comienza a contar la posición, desde el final de la cadena. Esta función distingue entre mayúsculas y minúsculas. La sintaxis de la función de cadena VBA InstrRev es:

InstrRev (String, Substring, [Start], [Compare]) donde:

  • Cadena: el texto original.
  • Subcadena- La subcadena dentro del texto original de la que desea encontrar la posición.
  • Comienzo (Opcional): Especifica la posición desde la que comenzar la búsqueda. Si está en blanco, la función comienza a buscar desde el último carácter.
  • Comparar (Opcional)- Especifica el tipo de comparación a realizar. Si está en blanco, se utiliza la comparación binaria.

-vbBinaryCompare: comparación binaria (las mayúsculas y minúsculas se consideran diferentes)
-vbTextCompare - Comparación de texto (las mayúsculas y minúsculas se consideran iguales)
-vbDatabaseCompare: comparación de la base de datos (esta opción se usa solo en Microsoft Access y es una comparación basada en la base de datos)

El siguiente código muestra cómo usar la función de cadena InstrRev para determinar la primera aparición de la subcadena "Th" dentro de la cadena principal, comenzando desde el final de la cadena:

1234567891011 Sub UsingTheInstrRevStringFunction ()Valor de atenuación Uno como cadenaDim positionofSubstring As IntegervalueOne = "Este es el texto"positionofSubstring = InStrRev (valueOne, "Th")Debug.Print posición de la subcadenaEnd Sub

El resultado se envía a la ventana inmediata:

La función InstrRev ha devuelto la posición de la primera aparición de la subcadena "Th", pero comenzando el conteo desde el final que es 9. Tenga en cuenta que esta función incluye los espacios en el conteo.

Eliminar espacios de una cadena

La función de cadena VBA LTrim

La función VBA LTrim elimina todos los espacios iniciales de un texto o cadena. La sintaxis de la función VBA LTrim String es:

LTrim (String) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función VBA LTrim para eliminar los espacios iniciales en la cadena dada:

123456789101112 Sub UsingTheLTrimStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "Esta es la dirección del sitio web https://easyexcel.net/excel/"valueTwo = LTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub

Los resultados son:

La función LTrim ha eliminado los espacios iniciales para valuetwo, que se muestra en el segundo cuadro de mensaje.

La función de cadena VBA RTrim

La función VBA RTrim elimina todos los espacios finales de un texto o cadena. La sintaxis de la función de cadena VBA RTrim es:

RTrim (String) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función VBA RTrim para eliminar los espacios finales en la cadena dada:

123456789101112 Sub UsingTheRTrimStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "Esta es la dirección del sitio web https://easyexcel.net/excel/"valueTwo = RTrim (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub

Los resultados entregados son:

La función RTrim ha eliminado los espacios finales para valuetwo, que se muestra en el segundo cuadro de mensaje.

La función VBA Trim String

La función de recorte de VBA elimina todos los espacios iniciales y finales de un texto o cadena. La sintaxis de la función VBA Trim String es:

Trim (String) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función de recorte de VBA para eliminar los espacios iniciales y finales en la cadena dada:

123456789101112 Sub UsingTheTrimStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "Esta es la dirección del sitio web https://easyexcel.net/excel/"valueTwo = Recortar (valueOne)MsgBox valueOneMsgBox valueTwoEnd Sub

Los resultados son:

La función de recorte ha eliminado los espacios iniciales y finales para valuetwo, que se muestra en el segundo cuadro de mensaje.

Funciones de caso de VBA

La función de cadena VBA LCase

La función VBA LCase convierte letras en un texto o cadena a minúsculas. La sintaxis de la función de cadena VBA LCase es:

LCase (Cadena) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función de cadena LCase para convertir todas las letras en la cadena dada a minúsculas:

1234567891011 Sub UsingTheLCaseStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "ESTE ES EL PRODUCTO"valueTwo = LCase (valueOne)MsgBox valueTwoEnd Sub

El resultado es:

La función LCase ha convertido todas las letras de la cadena a minúsculas.

La función de cadena de VBA UCase

La función VBA UCase convierte letras en un texto o cadena a mayúsculas. La sintaxis de la función de cadena UCase de VBA es:

UCase (Cadena) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función de cadena UCase para convertir todas las letras en la cadena dada a mayúsculas:

1234567891011 Sub UsingTheUCaseStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "este es el producto"valueTwo = UCase (valueOne)MsgBox valueTwoEnd Sub

El resultado es:

La función UCase ha convertido todas las letras de la cadena a mayúsculas.

La función VBA StrConv

La función VBA StrConv puede convertir letras en un texto o cadena a mayúsculas, minúsculas, mayúsculas y minúsculas, o Unicode, según el tipo de conversión que especifique. La sintaxis de la función de cadena VBA StrConv es:

StrConv (String, Conversion, [LCID]) donde:

  • Cadena: el texto original.
  • Conversión: el tipo de conversión que desea.
  • [LCID] (Opcional) -Un parámetro opcional que especifica LocaleID. Si está en blanco, se utiliza el LocaleID del sistema.

El siguiente código le muestra cómo usar la función de cadena StrConv para convertir la cadena en mayúsculas y minúsculas:

1234567891011 Sub UsingTheStrConvStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "este es EL producto"valueTwo = StrConv (valueOne, vbProperCase)MsgBox valueTwoEnd Sub

El resultado es:

Usted especifica el tipo de conversión que desea realizar mediante el parámetro de conversión:

  • vbLowerCase convierte todas las letras del texto a minúsculas.
  • vbUpperCase convierte todas las letras del texto a mayúsculas.
  • vbProperCase convierte la primera letra de cada palabra en el texto a mayúsculas, mientras que todas las demás letras se mantienen en minúsculas.
  • vbUnicode convierte una cadena a Unicode.
  • vbFromUnicode convierte una cadena de Unicode a la página de códigos predeterminada del sistema.

Comparando cadenas

La función VBA StrComp

La función de cadena VBA StrComp le permite comparar dos cadenas. La función devuelve:

  • 0 si las dos cadenas coinciden
  • -1 si cadena1 es menor que cadena2
  • 1 si cadena1 es mayor que cadena2
  • Un valor nulo si alguna de las cadenas era nula

El siguiente código le muestra cómo usar la función StrComp para comparar dos cadenas:

123456789101112 Sub UsingTheStrCompStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenaDim resultofComparison As IntegervalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (valueOne, valueTwo)Debug.Print resultofComparisonEnd Sub

El resultado es:

La función StrComp ha encontrado una coincidencia exacta entre las dos cadenas y ha devuelto 0.

El operador VBA Like

El operador Like de VBA le permite comparar un texto o una cadena con un patrón y ver si hay una coincidencia. Por lo general, usaría el operador Like junto con comodines. El siguiente código le muestra cómo utilizar el operador Me gusta:

123456789101112 Sub UsingTheLikeOperatorInVBA ()Valor de atenuación Uno como cadenavalueOne = "Veamos la salida"Si valueOne Like "* view *" EntoncesMsgBox "Hay una coincidencia, esta cadena contiene la palabra vista"DemásMsgBox "No se encontró ninguna coincidencia"Terminara siEnd Sub

El resultado es:

Los comodines que puede usar con el operador Like para encontrar coincidencias de patrones incluyen:

  • ? que coincide con un solo carácter
  • # que coincide con un solo dígito
  • * que coincide con cero o más caracteres

El siguiente código le muestra cómo usaría el operador Like y el? comodín para que coincida con un patrón en su código:

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA ()Valor de atenuación Uno como cadenavalueOne = "El"Si valueOne Like "?? e" EntoncesMsgBox "Hay una coincidencia, se encontró un patrón coincidente"DemásMsgBox "No se encontró ninguna coincidencia"Terminara siEnd Sub

El resultado entregado es:

Otras funciones útiles de cadenas de VBA

La función de cadena de reemplazo de VBA

La función Reemplazar de VBA reemplaza un conjunto de caracteres en una cadena con otro conjunto de caracteres. La sintaxis de la función de cadena de reemplazo de VBA es:

Reemplazar (Cadena, Buscar, Reemplazar, [Inicio], [Recuento], [Comparar]) donde:

  • Cadena: el texto original.
  • Buscar: la subcadena para buscar dentro del texto original.
  • Reemplazar: la subcadena con la que se reemplazará la subcadena Buscar.
  • Comienzo (Opcional)- La posición para comenzar a buscar desde dentro del texto original. Si está en blanco, se usa el valor de 1 y la función comienza en la posición del primer carácter.
  • Contar (Opcional)- El número de apariciones de la subcadena Buscar en el texto original para reemplazar. Si está en blanco, se reemplazan todas las apariciones de la subcadena Buscar.
  • Comparar (Opcional)- Especifica el tipo de comparación a realizar. Si está en blanco, se utiliza la comparación binaria.

    -vbBinaryCompare - Comparación binaria
    -vbTextCompare - Comparación de texto
    -vbDatabaseCompare: comparación de la base de datos (esta opción se usa solo en Microsoft Access y es una comparación basada en la base de datos).

El siguiente código le muestra cómo usar la función Reemplazar cadena:

1234567891011 Sub UsingTheReplaceStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "ProductABC"valueTwo = Reemplazar (valueOne, "ABC", "XYZ")MsgBox valueTwoEnd Sub

El resultado es:

La función Reemplazar encontró la subcadena ABC dentro de ProductABC y la reemplazó con la subcadena XYZ.

La función VBA StrReverse

La función VBA StrReverse invierte los caracteres en un texto o cadena determinados. La sintaxis de la función de cadena VBA StrReverse es:

StrReverse (String) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función VBA StrReverse para invertir los caracteres en la cadena Producto:

1234567891011 Sub UsingTheStrReverseStringFunction ()Valor de atenuación Uno como cadenaDim value Dos como cadenavalueOne = "Producto"valueTwo = StrReverse (valueOne)MsgBox valueTwoEnd Sub

El resultado es:

La función de cadena Len de VBA

La función VBA Len devuelve el número de caracteres en una cadena de texto. La sintaxis de la función VBA Len String es:

Len (String) donde:

  • Cadena: el texto original.

El siguiente código le muestra cómo usar la función Len String para determinar la longitud de la cadena AutomateExcel:

1234567891011 Sub UsingTheLenFunction ()Valor de atenuación Uno como cadenaDim stringLength como enterovalueOne = "AutomateExcel"stringLength = Len (valueOne)Debug.Print stringLengthEnd Sub

El resultado es:

La función Len ha contado todos los caracteres del texto AutomateExcel, que tiene 13 letras.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave