我正在阅读此线程 自定义查找功能 ,这是说明
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)")
Run Code Online (Sandbox Code Playgroud)
第一种情况与工作表无关,它在“立即”窗口中返回正确的结果。
第二个引用两张表并且也返回正确的结果。第三个也是如此,它指的是两本不同的工作簿。
明显的警告是始终完全限定任何工作表或工作簿引用。