如何提取 HTML 元素?

如何提取 HTML 元素?

我有几百个这样的 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>",""),"&nbsp",""),"<a href=",""),"</b>",""),"<span>",""),"<br>",""),"<b>",""),"</u>",""),"<u>","")

要使用它,请将“[@Description]”替换为您的源数据。

要添加更多内容,只需复制中间的替代函数,如下所示:

SUBSTITUTE([@Description],"<html-blob>","")

并将其粘贴到公式中的源中,这里是“[@Description]”,因为我在表中使用了它。更改重复的替代。

相关内容