Board logo

標題: [發問] 如何才能,計算工作表,等待計算結東後,再進行下一步 [打印本頁]

作者: blue2263    時間: 2014-3-15 22:30     標題: 如何才能,計算工作表,等待計算結東後,再進行下一步

本帖最後由 blue2263 於 2014-3-15 22:32 編輯

請教高手大大
vba要如何才能實現,計算當前工作表,等計算結東後,再進行下一步
我是用(ActiveSheet.Calculate '計算當前工作表)程式碼,但是它沒辦法,
等待計算完成後,再進行下一步,
請教是否有其它做法及程式碼可用,謝謝
作者: Hsieh    時間: 2014-3-15 23:33

回復 1# blue2263

  Do Until Application.CalculationState = xlDone
  Loop
作者: blue2263    時間: 2014-3-16 08:34

回復 2# Hsieh

感謝h版大回復
程式碼更改如下,但有些問題,就是重新計算過程中,游標如有點擊工作表畫面,會終止計算,造成無限回圈
請教要如何改善,謝謝!!
       Do Until Application.CalculationState = xlDone
        Application.Calculate '計算工作表
        Loop


附上文件檔案
[attach]17775[/attach]
作者: yen956    時間: 2014-3-16 12:52

回復 3# blue2263
把這兩行加入適當位置試試看!!
(剛剛學來的, 本人還來不及試)
Application .Calculation = xlManual
Application .Calculation = xlAutomatic

靈感來自(本人剛貼的):
http://forum.twbts.com/thread-11578-1-1.html
作者: yen956    時間: 2014-3-16 16:36

回復 3# blue2263
試過了, 就是這兩行
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
作者: blue2263    時間: 2014-3-16 17:20

回復 5# yen956

謝謝y大回復
我不知程式碼要放在那才正確,我測試都不ok,還請指教幫忙,謝謝!!
作者: yen956    時間: 2014-3-16 19:49

本帖最後由 yen956 於 2014-3-16 19:51 編輯

回復 1# blue2263
【vba要如何才能實現,計算當前工作表,等計算結東後,再進行下一步】
我是用(ActiveSheet.Calculate '計算當前工作表)程式碼,但是它沒辦法,
等待計算完成後,再進行下一步


深感抱歉!! 我弄錯你的本意了,
我誤以為:先進行一些工作, 再重新計算所有的公式,
這兩行
Application.Calculation = xlManual
Application.Calculation = xlAutomatic
在這種情況用不上, 再度抱歉!!
要請版大幫忙啦!!
作者: blue2263    時間: 2014-3-16 23:04

回復 7# yen956


   沒關係, 謝謝你的熱心幫忙
作者: Hsieh    時間: 2014-3-16 23:23

回復 3# blue2263
試試看
        Application.Calculate '計算工作表
        Do Until Application.CalculationState = xlDone
        DoEvents
        Loop
作者: blue2263    時間: 2014-3-17 07:47

本帖最後由 blue2263 於 2014-3-17 07:48 編輯

回復 9# Hsieh

感謝h版主回復
測試後結果:重新計算過程中,游標如有點擊工作表畫面,雖然不會造成回圈錯誤,但會終止計算
造成後面,貼上值的資料錯誤,因為我工作表函數有很多,因此計算上較慢,所以會有這個問題,

之前測試,如果程式碼改為
    Application.Calculate '計算工作表
    ActiveWorkbook.Save'儲存檔案
                                                '貼上值
是可以逹到,強制計算後,正確貼上值的效果,
但想是否有更好的方法,因儲存檔案,會重新計算所有工作表,不能只計算當前工作表,感覺會比較慢
因此想尋求,是否有更好的作法
作者: blue2263    時間: 2014-3-30 06:30

請教版主大大
一般如有一些大量計算的工作,是否不會用工作表函數來做?
而是直接在VBA內做計算,這樣就沒有我上述問題了吧




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