如何计算vba中源代码中有多少某些标记

时间:2016-01-22 14:24:02

标签: html vba excel-vba tags excel

我有一个源代码(http://finder.fi/Elektroniikkaa+ja+komponentteja/JOT+Automation+Headquarters+Oulu/OULU/taloustiedot/417315),我想从中提取由&#34; td&#34;定义的元素。 <标识并且在

之后
<td><div class="desc">Yrityksen henkilöstömäärä</div></td> 

这是源代码的一部分:

    <tr class="even">
<td><div class="desc">Yrityksen liikevaihto (1000 EUR)</div></td>

    <td>20639000</td>

    <td>17240000</td>

    <td>11727000</td>

    <td>11177000</td>

    <td>3141000</td>

</tr>

<tr>
<td><div class="desc">Liikevaihdon muutos%</div></td>

    <td>2.30</td>

    <td>-16.50</td>

    <td>-32.00</td>

    <td>-4.70</td>

    <td>-71.90</td>

</tr>

<tr class="even">
<td><div class="desc">Tilikauden tulos (1000 EUR)</div></td>

    <td>540000</td>

    <td>1542000</td>

    <td>-154000</td>

    <td>-569000</td>

    <td>5383000</td>

</tr>

<tr>
<td><div class="desc">Liikevoitto%</div></td>

    <td>3.20</td>

    <td>-3.60</td>

    <td>-8.00</td>

    <td>-8.40</td>

    <td>-14.40</td>

</tr>

<tr class="even">
<td><div class="desc">Yrityksen henkilöstömäärä</div></td>

    <td>13827</td>

    <td>11895</td>

    <td>8016</td>

    <td>4829</td>

    <td>1842</td>

    </tr>'

我试图拉动的元素总是最后的元素。但随着标签数量因搜索而异,我想知道有多少&#34; td&#34;代码中有标签并从那里开始工作以拉出最后的元素。

1 个答案:

答案 0 :(得分:0)

为了获取所需内容,您需要以下内容:

Sub GetLastTDContent()

    Dim strCode     As String
    Dim strTemp     As Variant

    strCode = "<td>13827</td> <td>11895</td><td> <div class='desc'>Yrityksen henkilöstömäärä</div></td> <td>8888</td> <td>9999</td> other unnecessary stuff"

    ' Filtering the second part
    strTemp = Split(strCode, "Yrityksen henkilöstömäärä</div></td>")
    strTemp = strTemp(UBound(strTemp))
    strTemp = Trim(strTemp)

    strCode = strTemp
    Do While InStr(strCode, "<td>") > 0         ' Pick each <td>
        strTemp = Split(strCode, "<td>")(1)
        strTemp = Split(strTemp, "</td>")(0)    ' Now extract the part preceeding </td>
        MsgBox strTemp
        strCode = Mid(strCode, InStr(strCode, "</td>") + Len("</td>"))  ' Now process the remaining <td> tags
    Loop

End Sub