返回列表 上一主題 發帖

下載期貨資料至工作表 QueryTable出錯

下載期貨資料至工作表 QueryTable出錯

前輩好 程式如下:

Option Explicit

Sub text()
  Dim myIE As InternetExplorer
  Dim myItem
  Dim QryTbl As QueryTable
  Dim myItems
  Dim WebAddress As String
  Dim mydate As Date
  Set myIE = New InternetExplorer
  With myIE
    .Visible = True
    .Navigate "http://www.taifex.com.tw/chinese/3/3_1_1.asp"
    Do Until .ReadyState = READYSTATE_COMPLETE
    Loop
  End With
  With myIE.Document.myform
    .COMMODITY_IDt.Value = "TF"                 '設定契約
  End With
  Set myItems = myIE.Document.getElementsByTagName("Input")
  For Each myItem In myItems
    If myItem.Value = "送出查詢" Then
      myItem.Click                              '按下送出查詢按鈕

End If
  Next
  With Worksheets("臨時資料2")
    .Cells.Clear
    Set QryTbl = .QueryTables.Add("URL;" & WebAddress, .Range("A1"))
  End With
  
  QryTbl.Refresh True

End Sub
----------------------------
錯誤一直卡在這列
  QryTbl.Refresh True
想請教有什麼方式能解決此問題 ..
感謝回覆:)
:)

好的 感謝諸位大大 !!
:)

TOP

基本上第二次使用
  1. Do Until .readyState = READYSTATE_COMPLETE: DoEvents: Loop
複製代碼
已經沒有效了,因為程式跑得比較快,會抓到第一次的狀態

只是我想不到有什麼比較完美的解決辦法,處理大量執行時,可以處理延遲的問題

TOP

回復 9# GBKEE
我已將您的指引 (do until) 改回。主要目的我只是在
測試它的環境執行之過程語結果,徒增常見聞別無他意。
謝謝您的不吝指導。
附上剛才不斷執行所一直產生的五種狀況,
最後一次才見成果。
想必是網路頻寬執行當時速率效益之關係吧!

TOP

回復 8# c_c_lai
按F8 逐步一行一行執行程式碼是沒問題的.但F5執行程序會出現問題的.
  1. Do Until .readyState = 4 And Not .Busy: DoEvents: Loop
複製代碼
這程式碼雖然是等候 IE.readyState ="完成" ,IE Not .Busy  不忙碌 ,之後

但網路資料的下載速度,還是比程式執行的速度慢,
導致 myItems 變數沒有設定到 .Document.getElementsByTagName("table")

所以要等候一下,網路資料下載確實完成
  1. Application.Wait Now + #12:00:01 AM#
  2. Set myItems = .Document.getElementsByTagName("table")
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE
對不起沒留意到  With Worksheets("臨時資料2")  的問題,
謝謝指正。同時將樓上所述 Do Loop 修蓋後執行,
出現 "沒有權限"?

TOP

Do Until .readyState = READYSTATE_COMPLETE: DoEvents: Loop
    Application.Wait Now + #12:00:01 AM#                  

把上面那兩行改成下面這一行,比較不會因延遲錯誤產生錯誤
    Do Until .readyState = 4 And Not .Busy: DoEvents: Loop

TOP

回復 5# c_c_lai
2003執行沒有錯誤,請指出錯誤點.

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

TOP

回復 4# GBKEE
謝謝您!不過執行起來有些錯誤,如圖:

TOP

回復 3# c_c_lai

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

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題