Visual Basic - VBA-Replace

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Blas (15 intervenciones) el 19/05/2020 02:23:38
Hola me ayudan...
Tengo una cadena de texto metida en una variable. La cadena tiene entre medio las etiquetas del codigo HTML
Probe para sacarlas con
1
Replace(Texto, "<*>","")

pero no me da bolilla. como saco las llaves ??

Use el "*" como comodin ya que algunas llaves tienen2 o 3 caracteres

Texto

Fundamentals of Power Electronics, Second Edition</em>, is an up-to-date and authoritative text and reference book on power electronics. This new edition retains the original objective and philosophy of focusing on the fundamental principles, models, and technical requirements needed for designing practical power electronic systems while adding a wealth of new material. <br> Improved features of this new edition include: <ul> <li> A new chapter on input filters, showing how to design single and multiple section filters; </li> <li> Major revisions of material on averaged switch modeling, low-harmonic rectifiers, and the chapter on AC modeling of the discontinuous conduction mode; </li> <li> New material on soft switching, active-clamp snubbers, z
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por gilman (359 intervenciones) el 19/05/2020 11:00:02
La función replace reemplaza la cadena exacta que se le pasa como segundo parámetro por el tercero, así
Replace("a*c","*","b") da como resultado "abc",, ya que reemplaza los * que encuentra en la cadena original por b
Me imagino que para lo que tú quieres hacer deberás usar expresiones regulares, yo no las controlo, así que no te puedo orientar sobre como usarlas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Blas (15 intervenciones) el 28/05/2020 17:41:10
Muchas gracias por tu explicacion gilman
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VBA-Replace

Publicado por Daniel (6 intervenciones) el 19/05/2020 14:56:28
Hola, supongo que deberías primero reemplazar un "<" y luego el otro ">"

replace(VARIABLE, "<","") y luego replace(VARIABLE, ">","")

Espero te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por gilman (359 intervenciones) el 19/05/2020 16:04:28
Lo que quiere, si no me equivoco, es que todas las cadenas entre < y > se eliminen, es decir, la cadena
<ul> <li> A new chapter on input filters, showing how to design single and multiple section filters; </li> <li>
debería transformarse en:
A new chapter on input filters, showing how to design single and multiple section filters;
Con lo que tú comentas solo eliminaría los carácteres < y >.
Utilizando Replace 'solo' no es posible, debería primero localizar los caracteres de < y >, y luego eliminar todo lo que haya entre medio, incluyendo esos carácteres.
Esto último es posible, pero complicado, no se si será mejor usar expresiones regulares para reemplazar dichas cadenas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Andres Leonardo (1798 intervenciones) el 19/05/2020 18:38:28
Espero te ayude...creas una funcion le envias el texto por parametro y te devuelve el valor corregido ..
Por cierto recien vi que decia VBA pero la funcion te sirve para VB o VBA

te adjunto una imagen del ejemplo espero te ayude.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Function reemplazaEtiquetasHTML(t As String) As String
Dim l As Long
Dim ini As Long
Dim fin As Long
reemplazaEtiquetasHTML = t
For i = 1 To Len(t)
    If Mid(t, i, 1) = "<" Then
        ini = i
    Else
        If Mid(t, i, 1) = ">" Then
        fin = i
        etiqueta = Mid(t, ini, fin - ini + 1)
        reemplazaEtiquetasHTML = Replace(reemplazaEtiquetasHTML, etiqueta, "")
        End If
    End If
Next i
End Function

reemplazaretiquetas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Blas (15 intervenciones) el 28/05/2020 17:46:48
Andres, ese codigo funciona muy bien. Gracias por el tiemo que invertiste en hacerlo.
Te cuento que tambien estuve probando la funcion Split la cual me estuvo dando buenos resultados..
Muchas gracias por el codigo !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Blas (15 intervenciones) el 28/05/2020 17:45:18
Asi es gilman quizas un bucle soluciona el tema. encuentro la pos de "<" y la de ">" y elimino esa pocion de cadena. luego con un loop realizo otra vez la busqueda desde la ultima posicion.
Gracias !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 21
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por Blas (15 intervenciones) el 28/05/2020 17:43:06
Si Daniel, en realidad la idea es reemplazar a las llaves y todo su contenido, eso lo soluciono encontrando la ubicacion de la llave de apertura y la de cierre. luego conociendo las posiciones podre hacerlo.. muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

VBA-Replace

Publicado por gilman (359 intervenciones) el 29/05/2020 08:20:22
Si estás usando el código que te ha adjuntado Andres Leonardo, te recomiendo que para localizar tanto la apertura como el cierre de llaves, uses la función InStr en vez de recorrer la cadena carácter por caracter buscando la aparición de cada carácter, si la cadena es muy larga notarás una mejora de rendimiento notable
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar