Board logo

標題: [發問] 兩個function,哪個省點資源? [打印本頁]

作者: mhl9mhl9    時間: 2013-8-26 17:39     標題: 兩個function,哪個省點資源?

Function ShtName(R As Range)
Application.Volatile
ShtName = R.Parent.Name
End Function

Function ShtName2(R As Range, T As Date)
    ShtName = R.Parent.Name
End Function

***使用shtnamne2  T:=now()

此function文件里用了1000次,用哪個有利資源? 請教版主,多謝
作者: sunnyso    時間: 2013-8-26 18:11

10000次已現在的CPU能力看不出差別
作者: mhl9mhl9    時間: 2013-8-26 19:53

程式執行時不發覺有什麽拖慢,但在vbe用逐步執行時,執行一步要做Shtname幾次,所以覺得幾浪費時間所以想比較兩個,自覺好像,now()每秒鐘都在執行,volatile不會每秒就更新一次吧
最近寫了個excel,open5秒,很滿意,但是試著試著,越來越慢,open20秒,我不甘心,就把變慢的版本里資料copy到最初的版本,又把module抄到最初版本,照理現在兩個版本是一模一樣了,但是就是最初那個快過以後版本幾倍(我指open時間),想不出原因,只能埋頭copy,2010,2011,2012,2013......
作者: oobird    時間: 2013-8-27 01:20

兩者作用不同的
前者Application.Volatile在於把函數標示為易失性函數,方便在儲存格改變時觸發運算
後者是在公式中加上now()函數,使得每秒強迫公式重算一次。
理論上當然後者耗資源啦。
open時間又是另一回事,檔案用久了就肥大臃腫,open時間自然越來越慢!
作者: mhl9mhl9    時間: 2013-9-3 15:32

回復 4# oobird


    thank you




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