2014-06-21 29 views
3

我讀這個線程 A custom find function 這指出Application.Evaluate與Activesheet.Evaluate

Interesting result. Note that Evaluate is same as Application.Evaluate and takes roughly twice as long as Activesheet.Evaluate – chris neilsen

如果一個永遠代替Application.Evaluate使用Activesheet.Evaluate

謝謝

+4

該評論是基於[查爾斯威廉斯這篇文章](http://fastexcel.wordpress.com/2011/11/02/evaluate-functions-and-formulas-fun-how-to-make-excels-評估方法快兩倍/) –

回答

3

我不知道你是否應該,但它看起來像你可以。例如,這些全部工作:

Activesheet.Evaluate("2") 

Activesheet.Evaluate("Sheet1!A1+Sheet2!A1") 

Activesheet.Evaluate("SUM([Book1]Sheet1!A1,[Book1]Sheet2!A1,[Book2]Sheet1!A1,[Book2]Sheet2!A1)") 

第一種情況是工作表不可知的,它會在即時窗口中返回正確的結果。

第二個是指兩張紙,並返回正確的結果。第三,就是指兩個不同的工作簿。

明顯的警告是始終完全限定任何工作表或工作簿引用。

+0

請參閱鏈接在我的意見來源的OP評論 –

+0

@chrisneilsen,我已閱讀該帖子後,提示這個問題的帖子中的鏈接。你能澄清這個評論嗎? –

+0

Doug,感謝您的評論 – xyz