2016-12-23 5 views
0

VBAを使用してWebページ内の表形式のデータを取得しようとしています。オープンに成功し、ログインしてテーブルエリアに移動しましたが、Excelのテーブルの日付をコピーすることができません!理由はVBA(「ID」タグを持たない)を使用してWebページからテーブルを抽出できません

<table cellspacing="0" cellpadding="0" class="grid" style="width: 930px;"> 

また、ウェブページから、それが唯一の「クラス」プロパティの下 を持っていることは、「ID」またはそれに割り当てられた「名前」タグを持たないテーブルのソースコードされている、私が使用することはできませんウェブページとしてのWebクエリは、ログインのためのユーザー名とパスワードを持っています

私は以下のいくつかのコードを試してみました!

Set IE = CreateObject("InternetExplorer.application") 
IE.Visible = True 
IE.navigate ThisWorkbook.Sheets("Sheet4").Range("Link") 
Do Until Not IE.busy: DoEvents: Loop 
Set doc = IE.document 

Do While doc.ReadyState <> "complete": DoEvents: Loop 
IE.document.all("new_username").Value = ThisWorkbook.Sheets("Sheet4").Range("User") 
IE.document.all("new_password").Value = ThisWorkbook.Sheets("Sheet4").Range("Pass") 
IE.document.all("ok").Click 
Do While doc.ReadyState <> "complete": DoEvents: Loop 
Set ElementCol = IE.document.getElementsByTagName("a") 
For Each link In ElementCol 
If link.innerHTML = "Gateway transactions" Then 
link.Click 
End If 
Next 
Application.Wait (Now + TimeValue("0:00:04")) 
IE.document.getelementsbyname("new_store_id").Item(1).Value = ThisWorkbook.Sheets("Sheet4").Range("MID") 
IE.document.getelementsbyname("new_tsrch_from_d").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("Fromdate") 
IE.document.getelementsbyname("new_tsrch_from_m").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("Frommon") 
IE.document.getelementsbyname("new_tsrch_from_y").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("Fromyear") 
IE.document.getelementsbyname("new_tsrch_to_d").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("Todate") 
IE.document.getelementsbyname("new_tsrch_to_m").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("Tomon") 
IE.document.getelementsbyname("new_tsrch_to_y").Item(0).Value = ThisWorkbook.Sheets("Sheet4").Range("ToYear") 
IE.document.getelementsbyname("new_tsrch_type").Item(0).Value = "15" 
Application.Wait (Now + TimeValue("0:00:02")) 
Set tags = IE.document.getElementsByTagName("input") 
For Each tagx In tags 
If tagx.Name = "ok" Then 
tagx.Click 
Exit For 
End If 
Next 
Set doc = IE.document 'From here the code starts for extracting table 
Set tbl = doc.getelementsbyclassname("grid") 
    GetTableData tbl, Sheet1.Range("A1") 
End Sub 
Sub GetTableData(ByRef tbl, rng As Range) 
Dim cl As Object 
Dim rw As Object 
Dim I As Long 
For Each rw In tbl.Rows ' In this line i am getting an error message "Run tine Error 438"Object Doesn't Support This Property or Method" 
    For Each cl In rw.Cells 
     rng.Value = cl.outerText 
     Set rng = rng.Offset(, 1) 
    Next cl 
    Set rng = rng.Parent.Cells(rng.Row + 1, 1) 
Next rw 
rng.Parent.Cells.WrapText = False 
End SuB 

私はいくつかの人が私を助けてくれることを願っています!前もって感謝します !!!

答えて

0

こんにちは、激しい研究の後、誰かが恩恵を受けるように答えを見つけました。実際には本当のおかげで、 "user2216436"と "Jonny"に行きました。彼らは私に以下のリンクのコードを教えてくれました。How to read the nested table <td> values using VBA?私は自分のニーズに合わせて編集しました..私は本当にこのウェブページが大好きです!!私のような初心者にとっては最高です!!

関連する問題