Board logo

標題: [發問] 請教高手, 執行階段錯誤1004, 及迴圈越執行越慢的問題 [打印本頁]

作者: jer92jer    時間: 2013-1-27 11:04     標題: 請教高手, 執行階段錯誤1004, 及迴圈越執行越慢的問題

站內各位高手大家好,

       我自己寫一個VBA, 要顯示  證交所 買賣日報表 的資料,

       因為要抓很多支上市的股票, 所以 用迴圈處理,  發生2個問題, 也作了很多功能都解決不了,

       問題1:  不定時 會中斷, 每次都卡在 抓網頁的 語法的最後一行 .Refresh...
                     但每次顯示停住的視窗, 我 按"偵錯"  再按 F5 繼續, 就又可以繼續顯示,   但總不能每次都卡住再去按..

       問題2:  因為要抓 幾百支的股票, 所以 迴圈執行到後面, 會越顯示越慢,  可能前 1~100支股票, 只要花 30分鐘, 但到後面 花的時間是好幾倍
  
       我自己試過的方式
       1. delete 剛查過的table, 好像沒用
       2. 加 on error resume next , 是可以, 但  原本會卡住的那支股票的TABLE 就會跳過, 不顯示
       3. 加 delay,  要加到 delay 10, 好像 才可以 不卡住, 但這樣好像不是可靠的解法
      
       請各位高手, 能否 高知小弟, 如何解決,   非常感謝!   ^_^

[attach]14074[/attach]
作者: Jevon    時間: 2013-1-27 19:04

根據我的經驗, 像yahoo的網頁如果用迴圈去跑資料的話,
對方的sever有時會認為遭受攻擊而中斷訪問,
證交所舊的網頁好像也是如此.
除非像您第3點所說的加入"delay".
但又因為有on error.., 還是很容易漏掉一些資料的.

至於愈跑愈慢, 釋放記憶體看會不會有幫助.

如果可以的話, 最好從交易總表下手, 跑迴圈真的不穩且很花時間...
作者: jer92jer    時間: 2013-1-27 21:16

to Jevon 大大,

你指的釋放記憶體是指哪個?! 可以建議一下嗎?!
我自己試了
1.  若將查詢結果 存檔, 都有作以下前後必要的動作
            Set oXL = CreateObject("Excel.Application")
            Set oWB = oXL.Workbooks.Open(myNewName, True)
            ....
            oWB.Close
            oXL.Quit
            Set oWB = Nothing
            Set oXL = Nothing

2. 在 querytable 後, 也作過 馬上加 以下的CODE
                    For i = 1 To ActiveWorkbook.Connections.Count
                        ActiveWorkbook.Connections.Item(1).Delete
                    Next i

還是沒有用..

執行越來越慢, 我想這個與 server 較無關, 因為我自己試過
1. 全部 八百多筆資料一次跑完 的總時間A
2. 每跑100筆, 就關掉excel, 再跑下一個100筆, 分8次執行,   總時間B

總時間B 遠遠 <   總時間A
所以應該是釋放記憶體的問題造成, 但就不知哪裡出錯,

希望站內各位高手, 給點意見, 自己作很多功課, 但好像還是找不到關鍵點
謝謝!
作者: Jevon    時間: 2013-1-27 22:59

回復 4# jer92jer
To jer92jer 兄,

首先要說, 在這兒我一點都不大, 只是興趣+簡化工作的需求,
會找些類似的例子加以修改來用, 嚴格說VBA連基本功都沒打好...,

反觀這裡臥虎藏龍的高手實在很多, 由他們針對您的Code加以診斷,
一定能很快地找出癥結所在, 會比我憑空想像強得多.

因為我本身也有用Excel連結外部資料來追蹤自己的投資組合,
您所困擾的問題讓我有些似曾相識的感覺, 因此野人獻曝而已...

如果不是記憶體占用的問題, 請再看看
(1) 工作表/活頁簿內是否有複雜或大量的公式或連結-先關閉重算功能
(2) 名稱定義的部分是否過多-我之前就曾發生過, 嚴重影響速度

提供您參考...
作者: jer92jer    時間: 2013-1-30 21:03

自己再推一下,

能有高手出手指導嗎?!

感恩丫!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)