Saltar al contenido

duda: Filtro para eliminar caracteres de un texto


jose0406

Recommended Posts

publicado

hola

tengo una duda, quiero crear un macro que me permita borrar ciertos caracteres para depurar un texto.

a grandes rasgos utilizo el siguiente codigo, lo que quiero haces es agregar una variable en "replace what:=" que me permita eliminar varios caracteres de una ves (&, %, #, etc). no se si esto se pueda hacer.

Sub filtro para eliminar caracteres()

Range("D:D").Replace What:="/", Replacement:=""

End Sub

publicado

Hola,

Te he diseñado una función que realiza múltiples reemplazos:

Function ReemplazosMultiples(queCaracteres As String, enQueTexto As Variant) As Variant
Dim myArray() As String
Dim Caracter As Variant
myArray = Split(queCaracteres, ",", , vbTextCompare)
For Each Caracter In myArray
enQueTexto = Replace(enQueTexto, Trim(Caracter), "", , , vbTextCompare)
Next
ReemplazosMultiples = enQueTexto
End Function[/CODE]

Para llamar a la función, le envías en una cadena separada por comas, los caracteres que quieres reemplazar y como segundo parámetro, el texto donde quieres realizar los reemplazos. La función devuelve el texto reemplazado asociado al nombre, por lo que puedes indicarle a la misma celda que se reemplace por la nueva cadena, con un ejemplo se ve mejor:

[CODE][a2] = ReemplazosMultiples("&, %, #, etc", [a1])[/CODE]

Esta frase dice, que la celda [A2] adquiera el texto de [A1] sin los caracteres ("&, %, #, etc")

Adjunto un ejemplo funcional.

Saludos

Reemplazos Multiples.xls

publicado

hola muchas gracias

intentare entender esta funcion para poder adaptarla a mis macros. Aun asi tengo la duda si se puede agregar una variable que maneje varios caracteres diferentes o solo se puede usar una variable a la vez.

publicado

No se si te entendí bien, la funcion admite una cadena con tantos caracteres como quieras, puedes poner (1, 2, 3, ..., n), siempre que esten separados por coma. Si en lugar de querer pasarle la cadena directamente quieres pasarle una variable, esta ha de ser de tipo string. Algo asi como:

Dim MiCadenaReemplazos as string

MiCadenaReemplazos = "&, %, #, etc"

[a2] = ReemplazosMultiples(MiCadenaReemplazos , [a1])

Notese, que "etc" tambien lo toma como un caracter, es decir, buscara todas las cadenas "etc" contenidas en el texto y las reemplazara por vacio "".

Si no he respondido tu pregunta, explicame con mas detalle tu duda o lo que intentas hacer.

Saludos

publicado

hola gracias en verdad, era en gran medida la duda que tenia.

eso es lo malo de ser veterinario y no programador, para mi es un mundo completamente nuevo

"Tema Solucionado"

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • 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.