Application.Evaluate vs. Activesheet.Evaluate

时间:2014-06-21 15:31:45

标签: excel excel-vba vba

我正在读这个帖子 A custom find 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

由于

1 个答案:

答案 0 :(得分:4)

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

Activesheet.Evaluate("2")

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

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

第一种情况是与工作表无关,它在立即窗口中返回正确的结果。

第二个引用两张纸并返回正确的结果。和第三部分一样,它指的是两种不同的工作簿。

明显的警告是始终完全限定任何工作表或工作簿参考。