標題:
[發問]
如何才能,計算工作表,等待計算結東後,再進行下一步
[打印本頁]
作者:
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/)