- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2014-12-27 11:43
| 只看該作者
本帖最後由 GBKEE 於 2014-12-28 07:24 編輯
回復 3# t8899
試試看- Option Explicit
- Sub Ex_盤後資訊_每日收盤行情()
- Dim A As Object, xDate As Date, EDATE As Date
- '***********測試用
- '抓到有為止(只抓5天),5天都抓不到也提示
- EDATE = Date + 5
- xDate = EDATE
- '*************
- 'xDate = Date '正式常程式碼
- With CreateObject("InternetExplorer.Application")
- .Visible = True
- .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php"
- Do While .Busy Or .readyState <> 4: DoEvents: Loop
- Ie_Refresh:
- With .Document
- .ALL("qdate").Value = Format(xDate, "E/MM/DD") '日期可修改
- .ALL("selectType").Value = "MS"
- .ALL("query-button").Click
- End With
- Do While .Busy Or .readyState <> 4: DoEvents: Loop
- If InStr(.Document.BODY.innerText, "查無資料") Then
- If xDate + 4 >= EDATE Then '測試用********
- 'If xDate + 4 >= Date Then '正式常程式碼
- Debug.Print xDate '驗證用 可刪除
- xDate = xDate - 1
- GoTo Ie_Refresh
- End If
- .Quit
- MsgBox Format(xDate, "E/MM/DD") & " 查無資料"
- Exit Sub
-
- End If
- Set A = .Document.getElementsByTagName("table")
- .Document.BODY.innerHTML = A(A.Length - 1).outerHTML '取最後的一個"table"
-
- Do While .Busy Or .readyState <> 4: DoEvents: Loop
- .ExecWB 17, 2 ' Select All
- .ExecWB 12, 2 ' Copy selection
- .Quit '關閉網頁
- With ActiveSheet '可指定工作表
- .UsedRange.Clear
- .Range("A1").Select
- .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NOHTMLFormatting:=True
- End With
- End With
- End Sub
複製代碼 |
|