返回列表 上一主題 發帖

[發問] 請教高手, 執行階段錯誤1004, 及迴圈越執行越慢的問題

[發問] 請教高手, 執行階段錯誤1004, 及迴圈越執行越慢的問題

站內各位高手大家好,

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

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

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

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

上市各股每日券商明細_顯示.rar (262.54 KB)

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
所以應該是釋放記憶體的問題造成, 但就不知哪裡出錯,

希望站內各位高手, 給點意見, 自己作很多功課, 但好像還是找不到關鍵點
謝謝!

TOP

自己再推一下,

能有高手出手指導嗎?!

感恩丫!

TOP

        靜思自在 : 欣賞別人就是莊嚴自己。
返回列表 上一主題