
Tengo unos cientos de estos divs, que necesito ordenar y filtrar.
Me gustaría eliminar TODO el HTML y quedarme solo con lo siguiente:
Ejemplo
- Nombre= Keith
- Correo electrónico= [correo electrónico][correo electrónico protegido][/correo electrónico]
- Almacenar= Tienda 1 (Esto solo tiene 2 opciones. Tienda 1, Tienda 2)
Todo el código siguiente está en una sola celda individual, por lo que hay alrededor de 400 celdas.
<div userid=""286"">
<div id=""694"">
<h1 style=""display:none"">Keith</h1>
<div>
<label class=""ufo-cform-label"">Name</label>
</div>
<div>Keith</div>
</div>
<div id=""697"">
<h1 style=""display:none"">[email protected]</h1>
<div>
<label class=""ufo-cform-label""> Email Address</label>
</div>
<div>[email protected]</div>
</div>
<div id=""698"">
<h1 style=""display:none"">Store 1</h1>
<div>
<label class=""ufo-cform-label"">Please choose your closest store</label>
</div>
<div>Store 1</div>
</div>
</div>
¿Es esto posible incluso en Excel? Gracias por cualquier orientación.
Respuesta1
Lamentablemente, su pregunta carece de muchos detalles, lo que hace que la respuesta sea complicada.
¿Están las celdas en el mismo formato? ¿Es el HTML el que cambia o solo los valores? ¿Estás siempre buscando nombre, correo electrónico y tienda? ¿Los saltos de línea están en el mismo lugar? Tampoco menciona si desea utilizar una fórmula de hoja de cálculo o VBa.
Según el ejemplo que has dado, este VBa debería hacer lo básico, o al menos darte lo suficiente para empezar.
Sub DoTheThingTheyWant()
Dim myValue As String
myValue = Range("A1").Value
Dim myValueSplit() As String
myValueSplit = Split(myValue, ">")
Dim nameSplit() As String
Range("B1").Value = "Name: " & GetValue(myValueSplit, 9)
Range("B2").Value = "Email: " & GetValue(myValueSplit, 13)
Range("B3").Value = "Store: " & GetValue(myValueSplit, 29)
End Sub
Function GetValue(myValueSplit() As String, pos As Integer)
Dim result() As String
result = Split(myValueSplit(pos), "<")
GetValue = result(0)
End Function
Recuerde, siempre guarde primero una copia de su trabajo como copia de seguridad, ya que las macros no se deshacen.
Respuesta2
Un poco tarde para la fiesta, pero necesitaba una respuesta para mí y necesitaba hacerlo manualmente sin VBA. Acabo de utilizar sustituciones anidadas, muy fáciles para usuarios que no utilizan VBA:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([@Description],"<html-blob>",""),"gt;",""),"</i>",""),"<i>",""),"</html-blob>",""),"</a>",""),"amp;",""),"<br />",""),"</span>","")," ",""),"<a href=",""),"</b>",""),"<span>",""),"<br>",""),"<b>",""),"</u>",""),"<u>","")
Para usarlo, cambie "[@Description]" por sus datos de origen.
Para agregar más, simplemente copie la función sustituta del medio con este aspecto:
SUBSTITUTE([@Description],"<html-blob>","")
y pégalo en la fuente en la fórmula, aquí "[@Descripción]", porque usé esto en una tabla. Cambie el sustituto duplicado.