需要使用vba从网页中提取详细信息

时间:2015-07-01 15:20:41

标签: html excel vba excel-vba view-source

我需要提取文本' Catalog Manager / Sales' &安培; ' EOL(产品/组件)'从使用VBA的视图源选项卡。

以下是查看源代码:

<tr>
    <td nowrap="true" valign="top" width="165px" class="ms-formlabel"><h3 class="ms-standardheader"><a name="SPBookmark_Requesting_x0020_Group"></a>Requesting Group</h3></td>
    <td valign="top" class="ms-formbody" width="450px" id="SPFieldChoice">
        <!-- FieldName="Requesting Group"
             FieldInternalName="Requesting_x0020_Group"
             FieldType="SPFieldChoice"
          -->
        Catalog Managers/ Sales
    </td>
</tr>

<tr>
    <td nowrap="true" valign="top" width="165px" class="ms-formlabel"><h3 class="ms-standardheader"><a name="SPBookmark_Reason_x0020_for_x0020_change"></a>Reason for change</h3></td>
    <td valign="top" class="ms-formbody" width="450px" id="SPFieldChoice">
        <!-- FieldName="Reason for change"
             FieldInternalName="Reason_x0020_for_x0020_change"
             FieldType="SPFieldChoice"
          -->
        EOL (product/component)
    </td>
</tr>

有多个id="SPFieldChoice",我需要仅为“请求群组”提取详细信息。和&#39;改变的原因&#39;。

我正在编写下面的代码来获取excel中的详细信息,但这并不是我特定的要求。

Set hcol = ie.document.getElementsByTagName("td")
    For Each inps In hcol
        If inps.ID = "SPFieldChoice" Then
            Sheets("Sheet2").Range("A" & j).Value = inps.innerText
        End If
    Next

需要一个只能提取上述所需细节的代码。

1 个答案:

答案 0 :(得分:0)

这只是一个建议(我无法验证答案),但我想说明一下你可以尝试的内容:

Set hcol = Set hcol = ie.document.getElementsByTagName("td")

For Each inps In hcol
    If inps.ID = "SPFieldChoice" Then
        If InStr(1, inps.innerHTML, "Requesting Group") > 0 Or InStr(1, it, "Reason for change") > 0 Then
            Sheets("Sheet2").Range("A" & j).Value = inps.innerText
        End If
    End If
Next