Application.Evaluate与Activesheet.Evaluate

我正在阅读这个线程自定义查找function ,这是说

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

应该总是使用Activesheet.Evaluate代替Application.Evaluate

谢谢

我不知道你是否应该,但看起来你可以。 例如,这些工作:

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

第一种情况是工作表不可知的,它在“立即”窗口中返回正确的结果。

第二个是指两张表,也返回正确的结果。 第三,这是指两个不同的工作簿。

显而易见的警告是始终完全限定任何工作表或工作簿引用。