-2

所得税申告書の評価などの計算には、Excel シートを使用します。Web サイトから Excel シートにデータを取得する必要があります。VBAを段階的に使用して成功しました

  1. VBA で Internet Explorer アプリケーションを作成する
  2. Web サイトの URL に移動してログインする
  3. Excel シートに既にある一意の ID でフォームに自動的に入力する
  4. フォームを送信すると、結果ページに表形式のデータが表示されるようになりました
  5. 今、getelementsbyid("tableid")私はExcelシートにデータをコピーして貼り付けました。

私の質問

  1. すべてのテーブルに ID または名前がありません
  2. テーブル席が多い

今、上から 3 番目のテーブルである ID のないテーブルからデータを取得したいと考えています。これを行う方法?がんばった。これらのテーブルの行は常に変更されているため、すべてのテーブルのデータをコピーすると、すべてのテーブルが必要になるわけではありません。

4

1 に答える 1

0

マクロの記録を開始し、[データ] -> [Web から] に移動し、インポート ダイアログで必要な Web ページを開き、必要なテーブルを選択し、必要に応じてすべてのインポート オプションを設定し、データをインポートします。その後、録音を停止します。

自動生成されたマクロ コードを含むボイラー プレートが得られるので、それを必要に応じて微調整するのは簡単です。

私は何度もそれをしましたが、これはとても簡単なので、今あなたと共有するために切り取ったものを保存していません.

更新: これは、このページから質問をインポートする方法です

Sub Macro1()
'
' Macro1 Macro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://stackoverflow.com/questions/18158928/get-tabledata-from-webpage-into-excel-using-macro/18160278#18160278" _
        , Destination:=Range("$A$1"))
        .Name = "18160278#18160278"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlOverwriteCells ' adjust this setting to your needs
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "1" ' this is the number of the required table on a page
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub
于 2013-08-10T08:53:41.690 に答える