我有几百个这样的 div,需要对它们进行排序和过滤。
我想删除所有 HTML 并仅留下以下内容:
例子
- 姓名= 基思
- 电子邮件= [电子邮件][电子邮件保护][/电子邮件]
- 店铺= 存储 1(这只有 2 个选项。存储 1、存储 2)
以下所有代码都在一个单独的单元格中,因此大约有 400 个单元格
<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>
这在 Excel 中可能吗?感谢您的指导。
答案1
遗憾的是,您的问题缺乏很多细节,因此很难回答。
单元格的格式是否相同?是 HTML 发生了变化还是只有值发生了变化。您是否一直在寻找姓名、电子邮件和商店?换行符是否在同一个位置?您也没有提到是否要使用工作表公式或 VBa。
根据您给出的示例,这个 VBa 应该可以完成基本操作,或者至少为您提供足够的操作空间。
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
请记住,始终先保存您的工作副本作为备份,因为宏无法撤消!
答案2
有点晚了,但我需要一个答案,并且需要在没有 VBA 的情况下手动完成。只需使用嵌套替换,非 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>","")
要使用它,请将“[@Description]”替换为您的源数据。
要添加更多内容,只需复制中间的替代函数,如下所示:
SUBSTITUTE([@Description],"<html-blob>","")
并将其粘贴到公式中的源中,这里是“[@Description]”,因为我在表中使用了它。更改重复的替代。