- 帖子
- 12
- 主題
- 5
- 精華
- 0
- 積分
- 19
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2010
- 閱讀權限
- 10
- 註冊時間
- 2015-1-3
- 最後登錄
- 2017-2-27

|
本帖最後由 GBKEE 於 2016-2-23 10:38 編輯
GBKEE、joey0415及各位大大你好
想請教你,我目前在試下載個股每日的融資融卷網頁http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php,爬文時有看到這個joey0415大大撰寫的(http://forum.twbts.com/viewthrea ... a=pageD1&page=2)的程式碼ex()函式,但是試著去執行時,執行到 Set evt = .Document.createEvent("HTMLEvents") 時,就出現物件不支援此屬性與方法錯誤,不曉得
joey0415、GBKEE大大可以幫忙協助嗎
Sub ex()
With CreateObject("internetexplorer.application")
.Visible = True
.Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_MARGN/MI_MARGN.php"
Do Until .ReadyState = 4
DoEvents
Loop
.Document.getElementById("date-field").Value = "104/08/12" '填入
'---------,內建的fireevent 的onchange失效,改用調用js的方法--------
Set evt = .Document.createEvent("HTMLEvents")
evt.initEvent "change", True, False
Set lst = .Document.all("selectType") 'option的name是selectType,但getElementsByName無法處理,要all才行
lst.selectedIndex = 0
lst.dispatchEvent evt
.Document.all("query-button").Click
Do While .ReadyState <> 4 Or .Busy: DoEvents: Loop
Application.Wait Now + TimeValue("00:00:5")
' Stop
' For Z = 0 To 10
' MsgBox .Document.getElementsByTagName("table")(Z).innerText
' Next
Stop
Set hTable = .Document.getElementsByTagName("table")(3) '第4個table
' tt = hTable.Rows.Length
' qq = hTable.Rows(2).Cells.Length
With ActiveSheet
For i = 1 To hTable.Rows.Length - 1 '前3個是標題與空白跳過
For j = 0 To hTable.Rows(i).Cells.Length - 1
.Cells(i, j + 1) = hTable.Rows(i).Cells(j).innerText
Next
Next
End With
.Quit
' MsgBox "OK"
End With
End Sub |
|