Este tutorial demostrará cómo usar la función Reemplazar VBA para reemplazar cadenas de texto.
Reemplazar función
La función Reemplazar de VBA devuelve una cadena, con sustituciones realizadas. Con el uso de parámetros opcionales, la nueva cadena puede comenzar en la posición especificada por start y termina al final de la cadena original.
Reemplazar VBA Sustituir una subcadena
La función Reemplazar de VBA se puede utilizar para sustituir cualquier subcadena que se encuentre, en cada parte que se encuentre.
12345678910111213141516 | Sub ReplaceExample_1 ()MsgBox Replace ("ABCABCABC", "A", "!")'El resultado es: "! BC! BC! BC"MsgBox Replace ("Me gusta el rosa, el rojo y el negro", "rosa", "morado")El resultado es: "Me gusta el morado, el rojo y el negro".MsgBox Replace ("A, B, C, A, B, C, A, B, C", ",", ",")'El resultado es: "ABCABCABC"MsgBox Replace ("ABCABCABC", "ABC", "!")'El resultado es: "!!!"MsgBox Replace ("ABCABCABC", "ABc", "!")'El resultado es: "ABCABCABC"MsgBox Replace ("ABCABCABC", "ZBC", "!")'El resultado es: "ABCABCABC"End Sub |
VBA Reemplazar posición inicial
La función Reemplazar de VBA se puede utilizar para sustituir cualquier subcadena que se encuentre, en cada parte que se encuentre. Si asignamos una posición de inicio, el resultado sería la parte de la cadena original después de ese punto de inicio.
12345678910111213 | Sub ReplaceExample_2 ()MsgBox Replace ("ABCABCABC", "A", "123") 'El resultado es: "123BC123BC123BC"MsgBox Replace ("ABCABCABC", "A", "123", 2) 'El resultado es: "BC123BC123BC"MsgBox Replace ("ABCABCABC", "A", "123", 7) 'El resultado es: "123BC"MsgBox Replace ("ABCABCABC", "A", "123", 8) 'El resultado es: "BC"MsgBox Replace ("ABCABCABC", "ABC", "! @") 'El resultado es: "! @! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 2) 'El resultado es: "BC! @! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 6) 'El resultado es: "C! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 7) 'El resultado es: "! @"MsgBox Replace ("ABCABCABC", "ABC", "! @", 8) 'El resultado es: "BC"End Sub |
VBA reemplaza solo algunas ocurrencias
La función Reemplazar de VBA se puede utilizar para sustituir cualquier subcadena que se encuentre, en cada parte que se encuentre. Opcionalmente, podemos decidir cuántas ocurrencias deben sustituirse.
123456789101112 | Sub ReplaceExample_3 ()MsgBox Replace ("ABCABCABC", "A", "12") 'El resultado es: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12",, 1) 'El resultado es: "12BCABCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 2) 'El resultado es: "12BC12BCABC"MsgBox Replace ("ABCABCABC", "A", "12",, 3) 'El resultado es: "12BC12BC12BC"MsgBox Replace ("ABCABCABC", "A", "12",, 5) 'El resultado es: "12BC12BC12BC"Reemplazo de MsgBox ("ABCABCABC", "A", "12", 3, 1)'El resultado es: "C12BCABC"'Reemplazamos A con 12, 1 vez comenzando desde la posición 3 de la cadena original.End Sub |
VBA Reemplazar sensibilidad de mayúsculas y minúsculas
La función Reemplazar de VBA por defecto distingue entre mayúsculas y minúsculas. Puede cambiar ese comportamiento para que no distinga entre mayúsculas y minúsculas mediante un parámetro opcional (vbTextCompare). En ese caso, también debe definir la posición de inicio de la búsqueda.
12345678910111213 | Sub ReplaceExample_4 ()Reemplazo de MsgBox ("ABcABCABc", "ABc", "12")'El resultado es: "12ABC12"MsgBox Replace ("ABcABCABc", "ABc", "12",,, vbTextCompare)'El resultado es: "121212"'Cuando usamos vbTextCompare necesitamos agregar los otros 2 argumentos opcionales:'empezar y contarMsgBox Replace ("ABcABCABcABc", "ABc", "12", 3, 1)'El resultado es: "cABC12ABc"'Comenzó desde la posición 3 y reemplazó a ABC solo una vez.End Sub |
También puede realizar un Reemplazo que no distingue entre mayúsculas y minúsculas, agregando Option Compare Text en la parte superior de su módulo:
1 | Opción Comparar texto |
VBA Reemplazar cotizaciones dobles
La función Reemplazar de VBA puede reemplazar el carácter de comillas dobles que se usa para delimitar el inicio y el final de una cadena.
La función VBA Chr puede devolver un carácter a partir de su número en el conjunto de caracteres.
1 | MsgBox Chr (34) 'El resultado es: " |
O
1 | MsgBox Chr (64) 'El resultado es: @ |
Se pueden usar comillas dobles dentro de la función Reemplazar de VBA usando “” ”” o la función Chr (34) de VBA.
12345678910111213 | Sub ReplaceExample_5 ()Dim StrEx como cadenaStrEx = "AB" "AB" ""El resultado de MsgBox StrEx 'es: AB "AB"Reemplazo de MsgBox (StrEx, Chr (34), "12")'El resultado es: AB12AB12Reemplazo de MsgBox (StrEx, "" "", "DQ")'El resultado es: "ABDQABDQ"End Sub |
VBA Reemplazar línea de ruptura en celda
La función Reemplazar de VBA puede encontrar el carácter especial de línea de ruptura en una celda y eliminarlo o reemplazarlo con un carácter de espacio. El carácter especial de línea de ruptura se puede ingresar en una celda usando el atajo de teclado Alt + Enter y se puede usar en el código VBA con su número de juego de caracteres usando la función VBA Chr (10).
1234567891011121314 | Sub ReplaceExample_6 ()Dim StrEx As String 'Definir una variable de cadena'Lea el valor de la celda A2 en la hoja de trabajo Hoja1StrEx = ThisWorkbook.Worksheets ("Sheet1"). Range ("A2"). Value'El carácter de línea de salto ingresado con Alt + Enter es Chr (10) y es invisible.'Esta línea de código reemplaza ese carácter con espacioStrEx = Reemplazar (StrEx, Chr (10), "")'Escriba el valor reemplazado en la celda B2 en la hoja de trabajo Hoja1ThisWorkbook.Worksheets ("Sheet1"). Range ("B2"). Value = StrExEnd Sub |