0

テーブル内のデータを Microsoft Excel に取得したいこの Web サイトがあります。
多くの VBA の例を使用しましたが、テーブルのテーブル タグ (HTML 内) に名前または ID がないため、どれも機能しませんでした。

これはサイトです:

http://www.tadawul.com.sa/wps/portal/!ut/p/c1/04_SB8K8xLLM9MSSzPy8xBz9CP0os3g_A-ewIE8TIwN3Q0tDA0_v4EDLUCNHIwMvc6B8JJK8QbCpgYGniU9YiLOPu7GBgQFJut0DwkxBuoONggO8jA08jQjo9vPIz03Vj9SPMsepyslUP0Q_0hmoKBKvooLc0IhyQ91AAJDgZts!/dl2/d1/L0lDUmlTUSEhL3dHa0FKRnNBL1lCUlp3QSEhL2Vu/?symbol=4003&tabOrder=2&chart_type=chart_oneDay&announcmentNumber=&isAnnual=

テーブルデータを「取得」してExcelに入れるにはどうすればよいですか?

[編集者注記 11 月 13 日: URL が正当であることを確認しました。]

4

1 に答える 1

0

探しているテーブルは、ドキュメント ルート ( <html>)の下の 21 (!!!) レベルにあり、「 Table3」の値に設定されたクラス属性があります。

<table width="100%" cellspacing="1" cellpadding="0" border="0" class="Table3">

これは HTML 全体で 1 回だけ使用されるため、かなり適切な選択基準が得られます。だから私はあなたが次のようなことをすることをお勧めします

Dim Doc As MSHTML.HTMLDocument
Dim ECol As MSHTML.IHTMLElementCollection
Dim IFld As MSHTML.IHTMLElement

    Set ECol = Doc.getElementsByTagName("table")
    For Each IFld In ECol
        If VarType(IFld.getAttribute("class")) <> vbNull Then
            If IFld.getAttribute("class") = "Table3" Then

                ' further process the Inner HTML of IFld ...

            End If
        End If
    Next
' ...

String 値をチェックする前に最初に VarType をチェックすることは、クラス要素を含まないテーブル要素を検出して除外することです。この場合、Ifクラス名はエラーで失敗します。

VBA デバッガーとF8鍵はあなたの友達です!

于 2013-11-13T08:18:02.980 に答える