Función de reemplazo de Excel VBA

Al igual que en Excel, tenemos una función donde podemos encontrar y reemplazar cualquier palabra, carácter u oración con cualquier letra. Pero mediante ese proceso, solo podemos reemplazar un tipo de oración o letra a la vez. Con la ayuda de la función VBA Reemplazar, podemos reemplazar tantas palabras o letras u oraciones en una sola toma. Esto ahorra mucho tiempo y esfuerzo al realizar una sola actividad varias veces. Para esto, utilizaremos la función Reemplazar que se encuentra en la lista de funciones VBA incorporada.

Debajo de la sintaxis y el argumento de la función Reemplazar en VBA.

¿Cómo utilizar la función de reemplazo de Excel VBA?

Aprenderemos cómo usar una función VBA Reemplazar Excel con algunos ejemplos.

Puede descargar esta plantilla VBA Reemplazar Excel aquí - VBA Reemplazar plantilla Excel

Función de reemplazo de VBA - Ejemplo # 1

Tenemos una muestra de datos de algunas oraciones donde reemplazaremos una palabra y pegaremos esa oración actualizada en la columna de la oración B.

Siga los pasos a continuación para usar la función Reemplazar en Excel VBA.

Paso 1: vaya a VBA y en la pestaña Insertar menú, seleccione Módulo.

Paso 2: Ahora escriba una subcategoría en el nombre de una función realizada o en cualquier nombre según su elección como se muestra a continuación.

Código:

 Sub VBA_Replace2 () End Sub 

Paso 3: Ahora defina una dimensión como Larga, ya que seleccionaremos una oración completa. Aquí lo hemos tomado como X.

Código:

 Sub VBA_Replace2 () Dim X As Long End Sub 

Paso 4: Ahora en esa X larga, seleccione el rango máximo hasta donde nuestros datos podrían subir. Aquí hemos tomado como rango de celdas A1000 y para subir hasta que comiencen nuestros datos, use End (xlUp) seguido de un punto (.) Fila. Lo que significa que avanzaremos en la misma columna hasta la fila que contiene los datos. Este proceso en la vida Ctrl + tecla de flecha arriba en Excel.

Código:

 Sub VBA_Replace2 () Dim X As Long X = Range ("A1000"). End (xlUp) .Row End Sub 

Nota : Podemos seleccionar desde Fin (xlDown) pero es posible que no agregue ningún salto o celda en blanco entre los datos si los datos tienen.

Paso 5: Ahora defina una vez más una dimensión Y tan larga como se muestra a continuación.

Código:

 Sub VBA_Replace2 () Dim X As Long X = Range ("A1000"). End (xlUp) .Row Dim Y As Long End Sub 

Paso 6: Ahora inicie un bucle For Next para la segunda dimensión definida Y desde la posición de celda 2 hasta el rango X (última celda llena)

Nota: Seleccionar la celda 2 significa que no estamos considerando el encabezado aquí para reemplazar.

Código:

 Sub VBA_Replace2 () Dim X As Long X = Range ("A1000"). End (xlUp) .Row Dim Y As Long For Y = 2 To X Next Y End Sub 

Paso 7: Ahora seleccione el Valor de la Columna B como Rango como Y seguido de un punto (.) Esto es como insertar una función en Excel.

Código:

 Sub VBA_Replace2 () Dim X As Long X = Range ("A1000"). End (xlUp) .Row Dim Y As Long For Y = 2 To X Range ("B" & Y) .Value = Next Y End Sub 

Paso 8: Ahora, como hemos visto en la sintaxis VBA de la función Reemplazar anterior, escriba Reemplazar y seleccione la Columna A e Y como la primera expresión de cadena seguida de las palabras que necesitamos reemplazar de la tabla.

Código:

 Sub VBA_Replace2 () Dim X As Long X = Range ("A1000"). End (xlUp) .Row Dim Y As Long For Y = 2 To X Range ("B" & Y) .Value = Replace (Range ("A "& Y), " Delhi ", " Nueva Delhi ") Siguiente Y Fin Sub 

Paso 9: Ahora compile el código completo y ejecútelo. Una vez que hagamos eso, reemplazaremos la palabra "Delhi" de la oración A por el trabajo "Nueva Delhi" y la oración completa se copiará en la oración B.

Podemos seleccionar una cadena de palabras o una oración y reemplazarla con cualquier letra u oración requerida.

Función de reemplazo de VBA - Ejemplo # 2

Hay otra forma de reemplazar palabras u oraciones con la ayuda de la codificación VBA. Para esto, tenemos una lista de 7 temas que se repiten. Y debemos reemplazar los nombres de los sujetos agregando números de serie antes de cada nombre de sujeto como se muestra a continuación.

Como podemos ver en la captura de pantalla anterior, la columna E tiene nombres únicos de aquellos sujetos que están allí en la columna B y la columna F tiene los nombres de los sujetos con un número de serie al comienzo.

Siga los pasos a continuación para usar la función Reemplazar en VBA.

Paso 1: Ahora, vaya a VBA y desde el menú Insertar agregue un nuevo Módulo. Una vez que lo obtengamos, comience a escribir la Subcategoría en el nombre de una función que se realiza como se muestra a continuación.

Código:

 Sub VBA_Replace () End Sub 

Paso 2: Ahora considere una dimensión Rng como Rango, InputRng como Rango y ReemplazarRng como Rango. Puede elegir cualquier otra letra o palabra para definir rangos.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range End Sub 

Paso 3: Ahora usa xTitleId como cuadro de diálogo y dale un nombre. Aquí lo hemos llamado " VBA_Replace ".

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" End Sub 

Paso 4: Ahora asigne Application.Selection con InputRng, esto permitirá que la aplicación seleccionada se use en VBA.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection End Sub 

Paso 5: Ahora, en la línea siguiente, inserte un InputBox de 3 tipos, Rango original, xTitleId y InputRng. El Rango original es una lista de los temas que se necesitan para reemplazar, enumerados en la columna B. xTitledId son los nombres de los cuadros de diálogo en la función realizada. Y InputRng es un rango de tabla de datos en la columna E y F.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection Establecer InputRng = Application.InputBox ("Original Range", xTitleId, InputRng.Address, Type: = 8) End Sub 

Paso 6: Ahora, en la línea siguiente, asigne una Entrada para Reemplazar y para esto seleccione la columna Reemplazar Rango. Resto de lo mismo.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection Establecer InputRng = Application.InputBox ("Original Range", xTitleId, InputRng.Address, Type: = 8) Establecer Reemplazar = Application.InputBox ("Reemplazar Rango:", xTitleId, Tipo: = 8) End Sub 

Paso 7: Ahora usaremos la función Application.Screenupdating, como su nombre lo indica, se usa para actualizar si es FALSO.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection Establecer InputRng = Application.InputBox ("Original Range", xTitleId, InputRng.Address, Type: = 8) Establezca Reemplazar = Application.InputBox ("Reemplazar rango:", xTitleId, Tipo: = 8) Application.ScreenUpdating = False End Sub 

Paso 8: Ahora inserte un bucle For-Next . Y para cada rango de Rng, reemplace los valores de la columna Reemplazar.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection Establecer InputRng = Application.InputBox ("Original Range", xTitleId, InputRng.Address, Type: = 8) Establezca ReplaceRng = Application.InputBox ("Reemplazar rango:", xTitleId, Tipo: = 8) Application.ScreenUpdating = False para cada Rng en ReplaceRng.Columns (1) .Cells Next End Sub 

Paso 9: Finalmente, reemplace InputRng con los valores presentes en Rng de toda la hoja.

Código:

 Sub VBA_Replace () Dim Rng As Range Dim InputRng As Range, ReplaceRng As Range xTitleId = "VBA_Replace" Establecer InputRng = Application.Selection Establecer InputRng = Application.InputBox ("Original Range", xTitleId, InputRng.Address, Type: = 8) Establezca ReemplazarRng = Application.InputBox ("Reemplazar rango:", xTitleId, Tipo: = 8) Application.ScreenUpdating = False para cada Rng en ReplaceRng.Columns (1) .Cells InputRng.Replace what: = Rng.Value, replace: = Rng.Offset (0, 1) .Value, Lookat: = xlWhole Next End Sub 

Paso 10: Una vez hecho, ahora compila y ejecuta el código. Obtendremos un cuadro de diálogo a nombre de VBA_Replace. Desde aquí, seleccione la lista de temas que debemos reemplazar como Rango original y haga clic en Aceptar. Luego obtendremos otro cuadro desde allí, seleccione el rango Reemplazar de E2 a F8 . Esta tabla tiene los datos que deben reemplazarse y haga clic en Aceptar.

Obtendremos datos en la columna B que serán reemplazados de los datos en la columna F con el número de serie.

Para una visión general, la columna E tiene nombres de sujeto únicos. Y la columna F tiene nombres de sujetos con números de serie. Entonces, estos datos en la columna B se reemplazan con datos en la columna F.

Ventajas de la función de reemplazo de VBA

  • Podemos reemplazar múltiples palabras u oraciones de una sola vez.
  • No hay límite de palabras o texto con lo que no podemos reemplazar.
  • La sintaxis de Reemplazar en VBA es tan fácil como usar la función SumIf en excel.
  • VBA Reemplazar como se muestra en el ejemplo-1 es la forma más fácil de aplicar.

Cosas para recordar

  • Guardar como Marco habilitó Excel para evitar perder el código escrito en VBA.
  • Siempre considere las dimensiones de tal manera que cree un valor agregado mientras seleccionamos las del código.
  • Asegúrese de seleccionar todo el rango de la hoja como se muestra en el ejemplo 2 si está limitado para obtener el resultado. O bien, puede definir y seleccionar un rango de celdas limitado que se utilizaría en la función Reemplazar.

Artículos recomendados

Esta ha sido una guía para la función de reemplazo de VBA. Aquí discutimos VBA Reemplazar y cómo usar Excel VBA Reemplazar Función junto con ejemplos prácticos y plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Tutoriales completos sobre bucles VBA
  2. ¿Cómo usar VBA Do While Loop?
  3. ¿Qué es el formato de número VBA?
  4. ¿Cómo crear VBA MsgBox?

Categoría: