
Eu tenho algumas centenas desses divs, que preciso classificar e filtrar.
Gostaria de remover TODO HTML e ficar apenas com o seguinte:
Exemplo
- Nome=Keith
- E-mail= [e-mail][e-mail protegido][/e-mail]
- Loja= Loja 1 (tem apenas 2 opções. Loja 1, Loja 2)
Todo o código abaixo está em uma única célula individual, portanto, existem cerca de 400 células
<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>
Isso é possível no Excel? Obrigado por qualquer orientação.
Responder1
Infelizmente, sua pergunta carece de muitos detalhes, o que torna a resposta complicada.
As células estão no mesmo formato? É o HTML que muda ou apenas os valores. Você está sempre procurando Nome, Email e Loja? As quebras de linha estão no mesmo lugar? Você também não menciona se deseja usar uma fórmula de planilha ou VBa.
Com base no exemplo que você deu, este VBa deve fazer o básico ou, pelo menos, fornecer o suficiente para você seguir em frente.
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
Lembre-se, sempre salve uma cópia do seu trabalho primeiro como backup, pois as macros não desfazem!!
Responder2
Um pouco atrasado para a festa, mas eu precisava de uma resposta para mim e precisava fazer isso manualmente, sem VBA. Acabei de usar substituições aninhadas tão fáceis para usuários que não são 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 usá-lo, troque "[@Description]" pelos dados de origem.
Para adicionar mais, basta copiar a função substituta do meio assim:
SUBSTITUTE([@Description],"<html-blob>","")
e cole na fonte da fórmula, aqui "[@Descrição]", pois usei isso em uma tabela. Altere o substituto duplicado.