返回列表 上一主題 發帖

在 windows7 環境抓不到資料??

在 windows7 環境抓不到資料??

本帖最後由 t8899 於 2015-3-5 07:04 編輯

office 2003
windows xp 下一切正常
在windows 7抓不到資料???(但如用F8,單步執行則抓的到)
測驗發現在 .Document.BODY.innerHTML = .Document.getElementsByTagName("table")(4).outerHTML 抓不到資料
Book2.zip (20.2 KB)

回復 1# t8899
試試看
  1. Do While .Document.getElementsByTagName("table")(4).outerHTML = "": Loop
  2.         .Document.BODY.innerHTML = .Document.getElementsByTagName("table")(4).outerHTML
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復  t8899
試試看
GBKEE 發表於 2015-3-5 08:51


有時可以,有時又不可以
不可以的次數較多!

TOP

回復 3# t8899
再試試看
  1. Option Explicit
  2. Sub ABC123()
  3.     Dim XDate As Date, A As Object
  4.     Application.ScreenUpdating = False
  5.     Sheets("3").Select
  6.     XDate = Date
  7.     With CreateObject("InternetExplorer.Application")
  8.         .Visible = False
  9.         .Navigate "http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php"
  10. 330:
  11.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  12.             .Document.ALL("qdate").Value = Format(XDate, "E/MM/DD")  '日期可修改
  13.             .Document.ALL("selectType").Value = "ALLBUT0999"
  14.             .Document.ALL("query-button").Click
  15.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  16.         If InStr(.Document.BODY.innerText, "查無資料") Then
  17.             XDate = XDate - 1
  18.             GoTo 330
  19.         End If
  20.         Do
  21.             Set A = .Document.getElementsByTagName("table")
  22.         Loop Until A.Length = 6
  23.         .Document.BODY.innerHTML = A(4).outerHTML
  24.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  25.         .ExecWB 17, 2       '  Select All
  26.         .ExecWB 12, 2       '  Copy selection
  27.         With Sheets("3")    '可指定工作表
  28.             .UsedRange.Clear
  29.             .Range("A1:P1000").ClearContents
  30.             .Range("A2").Select
  31.             .PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NOHTMLFormatting:=True
  32.         End With
  33.         .Quit        '關閉網頁
  34.     End With
  35. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復  t8899
再試試看
GBKEE 發表於 2015-3-6 09:19

是沒問題了
但資料的日期偶而會抓到 前1日
今日尚未收盤,應抓到 3/5 , 試5次有1次抓到3/4

TOP

回復 5# t8899

程式跑的比IE下載資料速度快,只好等它一下
  1. Application.Wait Time + #12:00:01 AM#  '慢慢地一秒一秒加上直到正常為止
  2.         Do
  3.             Set A = .Document.getElementsByTagName("table")
  4.         Loop Until A.Length = 6
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 t8899 於 2015-3-6 14:28 編輯
回復  t8899

程式跑的比IE下載資料速度快,只好等它一下
GBKEE 發表於 2015-3-6 14:06


謝謝指導!
這行不是解決這種問題??  Do While .Busy Or .readyState <> 4: DoEvents

TOP

回復 7# t8899

這行不是解決這種問題??  Do While .Busy Or .readyState <> 4: DoEvents

應該是的,但它不行也沒輒ㄚ

EX.JPG (88.3 KB)

EX.JPG

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 t8899 於 2015-3-7 07:31 編輯
回復  t8899

程式跑的比IE下載資料速度快,只好等它一下
GBKEE 發表於 2015-3-6 14:06

我剛發現
Application.Wait Time + #12:00:01 AM#
應該加在   If InStr(.Document.BODY.innerText, "查無資料") Then  的前面 才對?

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題