Saltar al contenido

Máximos colaboradores

Popular Content

Showing content with the highest reputation on 12/03/10 in all areas

  1. Hola a todos Como el titulo lo indica, estas dos funciones son muy similares, pero "Replace" tiena ventaja... explico Ayuda de la funcion Application.WorksheetFunction.Substitute: El método Substitute reemplaza el texto nuevo por el texto original dentro de una cadena de texto. Utilice el método Substitute cuando desee reemplazar texto específico en una cadena de texto; use el método Replace si desea reemplazar cualquier texto que aparezca en una ubicación específica dentro de una cadena de caracteres. Sintaxis expresión.Substitute(Arg1, Arg2, Arg3, Arg4) expresión Variable que representa un objeto WorksheetFunction. Ayuda de la funcion VBA.Replace: Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces. Sintaxis Replace(expresión, encontrar, reemplazarCon [, inicio[, Contar[, comparar]]]) Imaginemos una columna con datos, y que a esta en cada celda se debe reemplazar o sustituir algunos caracteres, pues bien he elaborado un archivo en el cual pueden realizar pruebas y notar, que la ventaja de VBA.Replace es que se puede reemplazar los caracteres cuantas ( Contar[ ) veces necesite dentro de la cadena de texto, por el contrario Substitute tiene la limitante de poder hacerlo solo una vez Sub sustituir() Dim texto1 As String Dim texto2 As String texto1 = Application.InputBox("Sustituir!", "Texto1", , , , Type:=1 + 2) texto2 = Application.InputBox("Sustituir!", "Texto2", , , , Type:=1 + 2) With Application .ScreenUpdating = False For x = 2 To Range("A" & Rows.Count).End(xlUp).Row Cells(x, 1) = .Trim(.Substitute(Cells(x, 1), texto1, "", 1)) Cells(x, 1) = .Trim(.Substitute(Cells(x, 1), texto2, "", 1)) Next x .ScreenUpdating = True End With Range("A1").Select End Sub[/PHP] [PHP]Sub reemplazar() Dim texto1 As String Dim texto2 As String texto1 = Application.InputBox("Reemplazar!", "Texto1", , , , Type:=1 + 2) texto2 = Application.InputBox("Reemplazar!", "Texto2", , , , Type:=1 + 2) With Application .ScreenUpdating = False For x = 2 To Range("A" & Rows.Count).End(xlUp).Row Cells(x, 1) = VBA.Trim(Replace(Cells(x, 1), texto1, "", 1, 1)) Cells(x, 1) = VBA.Trim(Replace(Cells(x, 1), texto2, "", 1, 1)) Next x .ScreenUpdating = True End With Range("A1").Select End Sub [/PHP] NOTA: No confundir ninguna de las dos funciones arriba con Application.WorksheetFunction.Replace si necesitan ver la diferencia busquen en la ayuda de VBA en Excel Espero sea de mucha utilidad y experimento Saludos desde Honduras Reemplazar texto en cadena (macro).zip
    1 point
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.