Excel VBA: Cómo reemplazar texto en una cadena (5 maneras efectivas)

  • Compartir Este
Hugh West

Si busca formas de reemplazar texto en una cadena utilizando Excel VBA Sustituir una parte del texto puede ahorrar mucho tiempo a la hora de volver a escribir las cadenas de texto. Así pues, entremos en el artículo principal para conocer los detalles de esta tarea de sustitución.

Descargar el cuaderno de ejercicios

Reemplazar texto en String.xlsm

5 Maneras de Reemplazar Texto en Cadena Usando Excel VBA

Aquí, tenemos el siguiente conjunto de datos que contiene algunos registros de los empleados con sus ids de correo electrónico. Nuestra tarea es reemplazar los nombres de dominio antiguos por los nuevos. En los siguientes métodos, trabajaremos con este conjunto de datos junto con algunas cadenas de texto aleatorias para reemplazar el texto deseado por VBA códigos.

Hemos utilizado Microsoft Excel 365 aquí, puede utilizar cualquier otra versión según su conveniencia.

Método-01: Reemplazar texto a partir de la posición n-ésima de una cadena aleatoria

Aquí reemplazaremos texto en una cadena de texto aleatoria para diferentes posiciones de inicio.

Paso-01 :

➤ Ir a la Desarrollador Pestaña Código Grupo Visual Basic Opción.

Entonces, el Editor de Visual Basic se abrirá.

➤ Ir a la Inserte Pestaña Módulo Opción.

Después de eso, un Módulo se creará.

Paso-02 :

➤ Escribe el siguiente código

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 1) MsgBox updated_str End Sub 

Aquí, hemos declarado full_txt_str y cadena_actualizada como Cadena y luego asignó full_txt_str a una cadena de texto aleatoria- "Cien Coches Cincuenta Coches Diez Coches" Entonces el VBA Función REPLACE se utiliza para sustituir al Coches parte de esta cadena aleatoria con Bicicletas y 1 se utiliza aquí para iniciar la sustitución desde la posición 1 de esta cadena. Por último, hemos asignado esta nueva cadena de texto a cadena_actualizada y con un cuadro de mensaje ( MsgBox ) veremos el resultado.

➤ Prensa F5 .

Entonces buzón de mensajes aparecerá la nueva cadena de texto con el texto sustituido Bicicletas .

➤ Para hacer el proceso de sustitución desde la segunda instancia de Coches utilice el siguiente código.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 14) MsgBox updated_str End Sub 

Aquí, hemos utilizado la posición inicial como 14 porque queremos tener la parte de la cadena después de Cien Coches y sustituir el Coches aquí.

➤ Después corriendo el código, tendremos lo siguiente buzón de mensajes con el cadena de texto a partir del texto Cincuenta y con Bicicletas en la posición de Coches .

➤ Para tener sólo la última parte de esta cadena estamos aplicando el siguiente código.

 Sub substitution_of_text_1() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 25) MsgBox updated_str End Sub 

Aquí, hemos utilizado la posición inicial como 25 porque queremos tener la parte de la cadena después de Cincuenta coches y sustituir el Coches con Bicicletas aquí.

Por último, tendremos un buzón de mensajes con nuestra parte deseada de la cadena teniendo el reemplazo con Bicicletas .

Read More: Excel VBA: Reemplazar carácter en cadena por posición (4 maneras eficaces)

Método-02: Sustituir Texto para n-ésima Ocurrencia de una Cadena Aleatoria Usando Excel VBA

En esta sección, reemplazaremos un texto en una cadena aleatoria para diferentes números de ocurrencias con la ayuda de un VBA código.

Pasos :

➤ Seguir Paso-01 de Método 1 .

➤ Escribe el siguiente código.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 1, 1) MsgBox updated_str End Sub 

Aquí, hemos declarado full_txt_str y cadena_actualizada como Cadena y luego asignó full_txt_str a una cadena de texto aleatoria- "Cien Coches Cincuenta Coches Diez Coches" Después de eso, el Función REPLACE se utiliza para sustituir al Coches parte de esta cadena aleatoria con Bicicletas , 1 se utiliza aquí para iniciar la sustitución desde la posición 1 de esta cadena, y el 1 es para contar el número de ocurrencias. Utilizando 1 como número de recuento estamos definiendo la sustitución del primer Coches Por último, hemos asignado esta nueva cadena de texto a cadena_actualizada y con un cuadro de mensaje ( MsgBox ) veremos el resultado.

➤ Prensa F5 .

Después, un buzón de mensajes aparecerá con el nuevo texto Bicicletas en el primera posición de Coches sólo.

➤ Para sustituir las dos primeras instancias de Coches con Bicicletas utilice el siguiente código.

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 1, 2) MsgBox updated_str End Sub 

Toma, 2 se utiliza como número de recuento para sustituir las dos primeras instancias de Coches con Bicicletas .

Después de ejecutar el código, tendrá la sustitución de los dos primeros textos Coches con Bicicletas .

➤ Aplica el siguiente código para sustituir todas las instancias del texto Coches .

 Sub substitution_of_text_2() Dim full_txt_str, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" updated_str = Replace(full_txt_str, "Coches", "Bicicletas", 1, 3) MsgBox updated_str End Sub 

En este caso, el último argumento de la función Función REPLACE es 3 que es el número de recuento que indica la sustitución de todos los Coches con Bicicletas en la cadena de texto.

➤ Prensa F5 .

A continuación buzón de mensajes con el texto sustituido Bicicletas en la cadena.

Lecturas similares

  • Cómo Reemplazar Texto con Retorno de Carro en Excel (4 Enfoques Sencillos)
  • Excel VBA: Cómo buscar y reemplazar texto en un documento de Word
  • Cómo reemplazar texto después de un carácter específico en Excel (3 métodos)
  • Reemplazar Texto de una Celda Basado en una Condición en Excel (5 Métodos Fáciles)

Método-03: Reemplazar texto en una cadena aleatoria con InputBox

En este caso, sustituiremos un texto determinado de una cadena aleatoria por un texto que definirá un usuario con la ayuda de la función Función InputBox de VBA .

Pasos :

➤ Seguir Paso-01 de Método 1 .

➤ Escribe el siguiente código.

 Sub sustitucion_de_texto_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Cien Coches Cincuenta Coches Diez Coches" new_txt = InputBox("Escribe el nuevo texto a sustituir") updated_str = Replace(full_txt_str, "Coches", new_txt) MsgBox updated_str End Sub 

Aquí, hemos declarado full_txt_str , nuevo_texto y cadena_actualizada como Cadena y luego asignó full_txt_str a una cadena de texto aleatoria- "Cien Coches Cincuenta Coches Diez Coches" Para que la entrada definida por el usuario sea el texto que se sustituya por la entrada Coches en la cadena aleatoria, hemos utilizado el Función InputBox y luego asignó este valor a nuevo_texto Entonces el Función REPLACE se utiliza para sustituir el Coches parte de esta cadena aleatoria con nuevo_texto Por último, hemos asignado esta nueva cadena de texto a cadena_actualizada y con un cuadro de mensaje ( MsgBox ) veremos el resultado.

➤ Prensa F5 .

Después, un Cuadro de entrada donde puede introducir cualquier parte de texto que desee incluir en la nueva cadena.

Tipo Bicicletas o cualquier otro texto que desee y, a continuación, pulse OK .

Finalmente, tendrá el siguiente resultado con la nueva cadena de texto con nuevo texto Bicicletas en la posición de Coches .

Read More: Cómo reemplazar texto en una fórmula de Excel (7 maneras fáciles)

Método-04: Reemplazar texto en un rango de cadenas con Excel VBA

En este caso, sustituiremos el gmail parte de los identificadores de correo electrónico con los dominios del Nuevo dominio y para acumular los nuevos ID de correo electrónico hemos insertado una nueva columna; Dirección de correo electrónico final .

Pasos :

➤ Seguir Paso-01 de Método 1 .

➤ Escribe el siguiente código.

 Sub substitution_of_text_4() For i = 4 To 13 If InStr(1, Cells(i, 4).Value, "gmail")> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, "gmail", Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

En este caso, hemos utilizado el Bucle FOR para ejecutar la operación desde Fila 4 a Fila 13 Con la ayuda del IF-THEN hemos comprobado si los identificadores de correo electrónico de Columna D contienen "gmail" o no, y para cumplir este criterio el "gmail" de los identificadores de correo electrónico se sustituirán por los nuevos dominios de Columna E para crear los nuevos ids en Columna F De lo contrario, aparecerá un espacio en blanco en las celdas correspondientes de Columna F .

➤ Prensa F5 .

A continuación, tendrá los nuevos identificadores de correo electrónico en la carpeta Dirección de correo electrónico final columna.

Read More: Excel VBA para Buscar y Reemplazar Texto en una Columna (2 Ejemplos)

Método-05: Reemplazar texto en un rango de cadenas con la entrada del usuario para buscar texto

Puede reemplazar los siguientes ids de correo electrónico con los nuevos dominios y declarar qué reemplazar en los ids anteriores se puede utilizar una entrada de usuario siguiendo este método.

Pasos :

➤ Seguir Paso-01 de Método 1 .

➤ Escribe el siguiente código.

 Sub substitution_of_text_5() Dim partial_text As String partial_text = Application.InputBox("Introduce la cadena a reemplazar") For i = 4 To 13 If InStr(1, Cells(i, 4).Value, LCase(partial_text))> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, LCase(partial_text), Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Aquí hemos definido texto_parcial como Cadena y luego lo asignamos a una cadena que será dada por un usuario a través de la función Cuadro de entrada .

Después, utilizamos el Bucle FOR para ejecutar la operación desde Fila 4 a Fila 13 y utilizando el IF-THEN comprobamos si los identificadores de correo electrónico de Columna D contienen "gmail" o no. Y para cumplir este criterio el "gmail" de los identificadores de correo electrónico se sustituirán por los nuevos dominios de Columna E para crear los nuevos ids en Columna F De lo contrario, aparecerá un espacio en blanco en las celdas correspondientes de Columna F .

➤ Prensa F5 .

Después, tendrá un Cuadro de entrada donde tienes que escribir el texto que quieres buscar en el rango de ids de email (aquí hemos introducido gmail ) y, a continuación, pulse OK .

Por último, tenemos nuestros identificadores de correo electrónico actualizados en la carpeta Dirección de correo electrónico final columna.

Read More: Buscar y Reemplazar un Texto en un Rango con Excel VBA (Macro y UserForm)

Sección práctica

Para hacer prácticas por su cuenta hemos proporcionado un Práctica en una hoja denominada Práctica Por favor, hazlo tú mismo.

Conclusión

En este artículo, tratamos de cubrir las formas de reemplazar texto en una cadena usando Excel VBA Si tiene alguna sugerencia o pregunta, no dude en compartirla en la sección de comentarios.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.