回復 3#fusayloveme
忘記提醒要設定引用項目
Microsoft HTML Object Library
Microsoft Internet Controls
[attach]9677[/attach]
程式是直接開啟每個植物介紹網頁
然後擷取其中需要的表格資料
不須經過其他程式轉載
重點在於標題要先輸入好
然後會依照植物編號由1開始下載資料填入工作表作者: fusayloveme 時間: 2012-2-21 09:02
Sub nn()
Dim MyIE As InternetExplorer, MyDoc As HTMLDocument
Set MyIE = CreateObject("InternetExplorer.application")
Set d = CreateObject("Scripting.Dictionary")
With MyIE
.Visible = True
r = 3
For i = 1 To 1044
.navigate "http://www.tbs-aqua.com/encyclopaedia/plant?plantID=" & i '網址
Do Until .readyState = READYSTATE_COMPLETE: Loop '直到網頁下載完成
Set MyDoc = .document '設定網頁中的文件給變數
With MyDoc '網頁中的文件敘述區段
Set x = .getElementsByTagName("Table") '取得文件中所有表格
For j = 0 To x(9).Cells.Length - 1 Step 2 '在第10個表格中所有格子做迴圈,一次跳2格
n = Replace(Replace(x(9).Cells(j).innerText, ":", ""), " ", "") '取奇數格的內容去冒號與空格
d(n) = x(9).Cells(j + 1).innerText '以奇數格內文字做索引紀錄偶數格的內容
Next
d("性狀") = x(10).innerText '第11個表格內容為性狀
End With
With Sheet1
.Cells(r, 1) = i 'A欄寫入編號
For k = 2 To 11
n = .Cells(2, k).Value '從B欄開始寫入對應的內容
.Cells(r, k) = d(n)
Next
r = r + 1
End With
d.RemoveAll '移除字典物件內容
Next
.Quit '關閉IE瀏覽器
End With
End Sub作者: fusayloveme 時間: 2012-2-21 15:59