私はこの問題の可能性のある回避策を探していました。VBAの特定のスタイルのためにウェブスクレープを適用できますか?
私の会社のすべてのデータには、静的なHTMLページを生成するWebポータルからアクセスします。残念ながら私たちの部署にはサーバーへの直接アクセス権が与えられないため、私の人生が楽になるので、必要なデータを見つけるためにこのポータルをページする必要があります。私のナビゲーションはうまくいきますし、要素の名前を付けたり、IDを与えたりすることでかなり熟練していますが、これはどちらもありません。
とにかく、途中でバックグラウンド。
私は独特のスタイルを持っているページからテーブルをつかむしたい「空のセル:ショー;」:
<TABLE cellspacing=10 cellPadding=10 border="1" style="empty-cells: show;">
</TABLE>
か、常に含まれている最初の行の見出しがあることが失敗同じテキスト文字列。私はそのテーブルを取得すると、必要なデータを操作できます。ここでは非常に機密性の高いデータですので、残念ながら全面的なコードを提供することはできません。
GetElementByRegexに関して多くの投稿がありましたが、実際に使用方法を説明している投稿やウェブサイトを見つけることができません。代わりに、彼らはすべて私がオプションではないアドオンをインストールしたい(私は知識のために私の渇きを感じるためにこれを学ぶ必要がある)。そのレンチェックを使用すると、私はトップTDタグを取捨選択する助けにはなりませんけれども
<TABLE cellspacing=10 cellPadding=10 border="0" width=100%>
<tr>
<td>
<TABLE cellspacing=10 cellPadding=10 border="1" style="empty-cells: show;">
<TR class="row0">
<TD style="width: 25%; background-color: #A3DCF5;"><strong>TITLE:</strong></TD>
<TD>LINE1</TD>
</TR>
<TR class="row1">
<TD> </TD><td>LINE2</td>
</TR>
<TR class="row0">
<TD> </TD><td>LINE3</td>
</TR>
<TR class="row1">
<TD> </TD><td>LINE4</td>
</TR>
<TR class="row0">
<TD> </TD><td>LINE5</td>
</TR>
</TABLE>
</td>
</tr>
</TABLE>
他の多くのテーブルがあります:私は、機密データを削除する以下のテーブル全体のコードを追加している支援するため
。
ありがとうございました。ティム!
以下の私のために完璧に働いた:
Dim tbls, tbl
Dim L1, L2, L3, L4, L5 As String
Set tbls = IE.Document.getElementsByTagName("table")
For Each tbl In tbls
If tbl.Rows(0).Cells(0).innerText = "Card Address:" Then
On Error Resume Next
L1 = tbl.Rows(0).Cells(1).innerText
L2 = tbl.Rows(1).Cells(1).innerText
L3 = tbl.Rows(2).Cells(1).innerText
L4 = tbl.Rows(3).Cells(1).innerText
L5 = tbl.Rows(4).Cells(1).innerText
Exit For
End If
Next
Worksheets("Sheet2").Range("A1").Value = L1
Worksheets("Sheet2").Range("A2").Value = L2
Worksheets("Sheet2").Range("A3").Value = L3
Worksheets("Sheet2").Range("A4").Value = L4
Worksheets("Sheet2").Range("A5").Value = L5
End Sub
私は一度似たような(おそらく)を持っていたし、私が試行錯誤の多くを行うと( 'td'タグを使用して)テーブルの収集トラフループ私が望んでいた行の量でテーブルを返しました(それは私が正しいテーブルを持っていることを知っていたときです)、次に行とカラムの値を取得するためにテストしました。 sytnaxは 'td.Rows(0).Cells(1).InnerText'となると思います。 [このリンク](http://stackoverflow.com/questions/26792344/loop-through-td-element-in-html-document-from-inside-frame-vba-excel-ie8-automat)は完全ではありませんが、しかしそれはあなたにスタートを与えるでしょう。 –
ありがとう、私はこれを見て、私はそれを動作させることができます参照してください。 –