[VBA]Excel操作IE(開啟網頁、等待網頁載入、填寫網頁控制項資料、點擊網頁按鈕、抓取網頁資料)
該貼的附件提供了一個利用SHDocVw.InternetExplorer對象、進行開啟網頁、等待網頁載入、填寫網頁控制項中資料(檢索條件)、點擊網頁按鈕(檢索按鈕)、等待網頁載入(檢索中)、抓取網頁資料(檢索結果)的一個完整的例子。
該技術對與開發人員可以用於Web頁面的批量測試、類似於JUnit方式的測試、也可以用於批量也網頁重複操作、比如網頁考勤系統的登入、出勤、退勤等等。
該貼摘自:http://www.officefans.net/cdb/viewthread.php?tid=68888
附件:http://access911.net/csdn/FileDescription.asp?mdb=2009-9-11&id=8
原帖內容如下:
用VBA抓取網頁資料,通常可以用Excel VBA的workbooks.open "http://....."語句來實現開啟網頁,之後用find和offset等方法定位元據的位置,再複製到指定的地方。
或者用QueryTableActiveSheet.QueryTables.Add(Connection:="URL;http://.....", Destination:=Range("A1"))
但是,在有些場合可能這兩種方法不容易實現,比如:
1.匯入查詢結果頁面。(每次要先提交表單才能得到資料頁,資料是分頁的,但各分頁URL一樣,沒有?page=2之類的)
2.要先提交表單或點選連結才能得到資料頁,網頁在IE中顯示正常,但直接將URL用Workbooks.open或QueryTables.add開啟則顯示逾時等錯誤)
3.大量匯入網址不規則的頁面。(所有要匯入的頁面都在某個網頁上有連結,但網址沒有規律)
如果對html和網頁script指令碼熟悉的話,可以用IExplorer對象開啟網頁,然後用VB指令碼控制網頁內各個元素的行為來填寫、提交表單或開啟超級連結,然後取得網頁內各個元素的innerText來實現擷取資料。