VBA - Funciones de cadenas y subcadenas - Automate Excel (2022)

In this Article

  • Extraer una subcadena
    • Función Left
    • Función Right
    • Función Mid
  • Encontrando la Posición de una Subcadena
    • Función Instr
    • Función InStrRev
  • Eliminando Espacios de una Cadena
    • Función LTrim
    • Función RTrim
    • Función Trim
  • Funciones Case
    • Función LCase
    • Función UCase
    • Función StrConv
  • Comparación de cadenas
    • Función StrComp
    • Operador Like
  • Otras funciones útiles de VBA para cadenas
    • Función Replace
    • Función StrReverse
    • Función Len

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

Extraer una subcadena

Función Left

La función Left le permite extraer una subcadena de un texto o cadena comenzando por el lado izquierdo. La sintaxis de la función Left es: Left(cadena, numeroDeCaracteres) donde:

  • cadena – Es el texto original.
  • numeroDeCaracteres – Es un entero que especifica el número de caracteres a extraer del texto original empezando por el principio.

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

Sub usandoLaFuncionLeft()Dim valor1 As StringDim valor2 As Stringvalor1 = "AutomateExcel"valor2 = Left(valor1, 4)MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (1)

La Función Izquierda ha extraído las cuatro primeras letras de AutomateExcel, las cuales son: Auto.

Función Right

La función Right le permite extraer una subcadena de un texto o cadena comenzando por el lado derecho. La sintaxis de la función Right es: Right(Cadena, Número_de_caracteres) donde:

  • Cadena – Es el texto original.
  • Número_de_caracteres Es un entero que especifica el número de caracteres a extraer del texto original empezando por el final.

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

Sub UsandoLaFuncionRight()Dim valor1 As StringDim valor2 As Stringvalor1 = "AutomateExcel"valor2 = Right(valor1 , 4)MsgBox valor2 End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (2)

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

Función Mid

La función Mid le permite extraer una subcadena de un texto o cadena, comenzando desde cualquier posición dentro de la cadena que usted especifique. La sintaxis de la Función Mid es: Mid(Cadena, Posición_inicial, [Número_de_caracteres]) donde:

  • Cadena – Es el texto original.
  • Posición_inicial – Es la posición en el texto original, desde donde la función comenzará a extraer.
  • Número_de_caracteres(Opcional)Es un número entero que especifica el número de caracteres a extraer del texto original comenzando desde Posición_inicial. Si está en blanco, la función MID devolverá todos los caracteres desde la Posición_inicial.

El siguiente código muestra cómo utilizar la Función Mid para extraer cuatro caracteres, a partir de la segunda posición o carácter de la cadena:

Sub UsandoLaFuncionMid()Dim valor1 As StringDim valor2 As Stringvalor1 = "AutomateExcel"valor2 = Mid(valor1, 2, 4)MsgBox valor2 End Sub

El resultado se envía a un msgbox:

VBA - Funciones de cadenas y subcadenas - Automate Excel (3)

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

Encontrando la Posición de una Subcadena

Función Instr

La función 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 Instr es: Instr([Inicio], Cadena, Subcadena, [Comparar]) donde:

  • Inicio(Opcional) – Especifica la posición inicial a partir de la cual buscará la función. Si está en blanco, se utiliza el valor por defecto de 1.
  • Cadena – El texto original.
  • Subcadena – La subcadena dentro del texto original cuya posición desea encontrar.
  • 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 las minúsculas se consideran iguales)

-vbDatabaseCompare – Comparación de bases de datos (Esta opción se utiliza sólo 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 para determinar la primera aparición de la subcadena «tex» dentro de la cadena principal:

Sub usandoInStr()Dim valor1 As StringDim posicionDeSubCadena As Integervalor1 = "Este es el texto "posicionDeSubCadena = InStr(1, valor1, "tex")Debug.Print posicionDeSubCadena End Sub

El resultado (enviado a la ventana inmediata) es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (4)

La función Instr ha devuelto la posición de la primera ocurrencia de la subcadena «tex» que es 12. Note que esta función incluye los espacios en el conteo.

Función InStrRev

La función 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 InStrRev es: InstrRev(Cadena, Subcadena, [Inicio], [Comparación]) donde:

  • Cadena – El texto original.
  • Subcadena La subcadena dentro del texto original cuya posición desea encontrar.
  • Inicio(Opcional) – Especifica la posición a partir de la cual se inicia 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 las minúsculas se consideran diferentes)

-vbTextCompare – Comparación de texto (las mayúsculas y las minúsculas se consideran iguales)

-vbDatabaseCompare – Comparación de bases de datos (Esta opción se utiliza sólo 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 InStrRev para determinar la primera aparición de la subcadena «el» dentro de la cadena principal, empezando por el final de la cadena:

Sub usandoInStrRev()Dim valor1 As StringDim posicionDeSubCadena As Integervalor1 = "Este es el texto "posicionDeSubCadena = InStrRev(valor1, "el")Debug.Print posicionDeSubCadenaEnd Sub

El resultado se envía a la ventana inmediata:

VBA - Funciones de cadenas y subcadenas - Automate Excel (5)

La función InstrRev ha devuelto la posición de la primera ocurrencia de la subcadena «el», pero comenzando el conteo desde el final que es 9. Note que esta función incluye los espacios en el conteo.

Eliminando Espacios de una Cadena

Función LTrim

La función LTrim elimina todos los espacios iniciales de un texto o cadena. La sintaxis de la función LTrim es: LTrim(Cadena) donde:

  • Cadena – El texto original.

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

Sub usandoLaFuncionLTrim()Dim valor1 As StringDim valor2 As Stringvalor1 = " Esta es la dirección del sitio web https://www.automateexcel.com/excel/"valor2 = LTrim(valor1)Debug.Print valor1Debug.Print valor2End Sub

Resultado en la ventana Inmediato:

VBA - Funciones de cadenas y subcadenas - Automate Excel (6)

La función LTrim ha eliminado los espacios iniciales del valor1, que se muestra en la segunda linea de la ventaa Inmediato.

Función RTrim

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

  • Cadena – El texto original.

El siguiente código muestra cómo utilizar la Función RTrim de VBA para eliminar los espacios finales en la cadena dada:

Sub usandoLaFuncionRTrim()Dim valor1 As StringDim valor2 As Stringvalor1 = "web https://www.automateexcel.com/excel/ "valor2 = RTrim(valor1)Debug.Print valor1 + valor1Debug.Print valor2 + valor2End Sub

El resultado en la ventana Inmediato:

VBA - Funciones de cadenas y subcadenas - Automate Excel (7)

La función RTrim ha eliminado los espacios finales del valor1 en la variable valor2.

Función Trim

La función Trim elimina todos los espacios iniciales y finales de un texto o cadena. La sintaxis de la función Trim es: Trim(Cadena) donde:

  • Cadena – El texto original.

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

Sub usandoLaFuncionTrim()Dim valor1 As StringDim valor2 As Stringvalor1 = " Esta es la dirección del sitio web https://www.automateexcel.com/excel/ "valor2 = Trim(valor1)Debug.Print valor1Debug.Print valor2End Sub

Los resultados son:

VBA - Funciones de cadenas y subcadenas - Automate Excel (8)

La función de recorte ha eliminado los espacios iniciales y finales del valor1, que se muestra en la variable valor2 en la ventana de Inmediato.

Funciones Case

Función LCase

La función LCase convierte las letras de un texto o cadena en minúsculas. La sintaxis de la función LCase es: LCase(Cadena) donde:

  • Cadena – El texto original.

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

Sub UsandoLaFuncionLCase()Dim valor1 As StringDim valor2 As Stringvalor1 = "ESTE ES EL PRODUCTO"valor2 = LCase(valor1)MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (9)

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

Función UCase

La función UCase convierte las letras de un texto o cadena en mayúsculas. La sintaxis de la función UCase es: UCase(Cadena) donde:

  • Cadena – El texto original.

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

Sub UsandoLaFuncionUCase()Dim valor1 As StringDim valor2 As Stringvalor1 = "este es el producto"valor2 = UCase(valor1)MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (10)

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

Función StrConv

La Función StrConv puede convertir las letras de un texto o cadena a mayúsculas, minúsculas, mayúsculas propias o unicode dependiendo del tipo de conversión que usted especifique. La sintaxis de la función StrConv es: StrConv(Cadena, Conversión, [LCID]) donde:

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

El siguiente código muestra cómo utilizar la Función StrConv String para convertir la cadena a las mayúsculas y minúsculas adecuadas:

Sub UsandoLaFuncionStrConv()Dim valor1 As StringDim valor2 As Stringvalor1 = "este es EL producto"valor2 = StrConv(valor1, vbProperCase)MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (11)

Se especifica el tipo de conversión que se quiere realizar mediante el parámetro de conversión:

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

Comparación de cadenas

Función StrComp

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

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

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

Sub UsandoLaFuncionStrComp()Dim valor1 As StringDim valor2 As StringDim resultado As Integervalor1 = "AutomatizarExcel"valor2 = "AutomatizarExcel"resultado = StrComp(valor1, valor2)Debug.Print resultadoEnd Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (12)

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

Operador Like

El Operador Like le permite comparar un texto o cadena con un patrón y ver si hay una coincidencia. Por lo general, el operador «Like» se utiliza junto con los comodines. El siguiente código muestra cómo utilizar el Operador Like:

Sub UsandoElOperadorLike()Dim valor1 As Stringvalor1 = "Veamos la salida"If valor1 Like "*Veamos*" Then MsgBox "Hay una coincidencia, esta cadena contiene la palabra Veamos" Else MsgBox "No se ha encontrado ninguna coincidencia"End IfEnd Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (13)

Los comodines que pueden utilizar 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 muestra cómo utilizar el Operador Like y el comodín ? para encontrar una coincidencia de patrón en su código:

Sub UsandoElOperadorLikeconUnComodin()Dim valor1 As Stringvalor1 = "Los"If valor1 Like "??s" Then MsgBox "Hay una coincidencia, se encontró un patrón coincidente"Else MsgBox "No se ha encontrado ninguna coincidencia"End IfEnd Sub

El resultado entregado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (14)

Otras funciones útiles de VBA para cadenas

Función Replace

La función Replace reemplaza un conjunto de caracteres en una cadena con otro conjunto de caracteres. La sintaxis de la función Replace es: Replace(Cadena, Cadena_a_buscar, Cadena_de_reemplazo, [Inicio], [Recuento], [Comparar]) donde:

  • Cadena – El texto original.
  • Cadena_a_buscar – La subcadena a buscar dentro del texto original.
  • Cadena_de_reemplazo – La subcadena con la que se reemplazará la subcadena Cadena_a_buscar.
  • Inicio(Opcional) – La posición desde la que se inicia la búsqueda dentro del texto original. Si está en blanco, se utiliza el valor 1 y la función comienza en la posición del primer carácter.
  • Recuento (Opcional) – El número de apariciones de la subcadena Buscar en el texto original a reemplazar. Si está en blanco, se reemplazan todas las apariciones de la subcadena Cadena_a_buscar .
  • Comparar (Opcional) – Especifica el tipo de comparación a realizar. Si está en blanco, se utiliza la comparación binaria.
    • -vbCompareBinario – Comparación binaria
    • -vbTextCompare – Comparación de texto
    • -vbDatabaseCompare – Comparación de base de datos (Esta opción se utiliza sólo 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 Replace:

Sub UsandoLaFuncionReplace()Dim valor1 As StringDim valor2 As Stringvalor1 = "ProductoABC"valor2 = Replace(valor1, "ABC", "XYZ")MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (15)

La Función Replace encontró la subcadena ABC dentro de ProductoABC y la reemplazó con la subcadena XYZ.

Función StrReverse

La función StrReverse invierte los caracteres de un texto o cadena dada. La sintaxis de la función StrReverse es: StrReverse(Cadena) donde:

  • Cadena – El texto original.

El siguiente código muestra cómo utilizar la Función StrReverse para invertir los caracteres de la cadena Producto:

Sub UsandoLaFuncionStrReverse()Dim valor1 As StringDim valor2 As Stringvalor1 = "Producto"valor2 = StrReverse(valor1)MsgBox valor2End Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (16)

Función Len

La función Len devuelve el número de caracteres en una cadena de texto. La sintaxis de la función Len es: Len(Cadena) donde:

  • String – El texto original.

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

Sub UsandoLaFuncionLen()Dim valor1 As StringDim longitudCadena As Integervalor1 = "AutomateExcel"longitudCadena = Len(valor1)Debug.Print longitudCadenaEnd Sub

El resultado es:

VBA - Funciones de cadenas y subcadenas - Automate Excel (17)

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

Top Articles

You might also like

Latest Posts

Article information

Author: Lidia Grady

Last Updated: 11/23/2022

Views: 6346

Rating: 4.4 / 5 (45 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Lidia Grady

Birthday: 1992-01-22

Address: Suite 493 356 Dale Fall, New Wanda, RI 52485

Phone: +29914464387516

Job: Customer Engineer

Hobby: Cryptography, Writing, Dowsing, Stand-up comedy, Calligraphy, Web surfing, Ghost hunting

Introduction: My name is Lidia Grady, I am a thankful, fine, glamorous, lucky, lively, pleasant, shiny person who loves writing and wants to share my knowledge and understanding with you.