gpt4 book ai didi

excel - Application.WorksheetFunction 与 WorksheetFunction

转载 作者:行者123 更新时间:2023-12-03 00:38:50 28 4
gpt4 key购买 nike

这是一个相当短的问题,可能很容易回答,但我自己目前无法回答:

<小时/>

示例数据:

A
B
C
<小时/>

示例代码:

With Sheet1
Debug.Print Application.WorksheetFunction.Match("D", .Columns(1), 0) 'Option1
Debug.Print Application.Match("D", .Columns(1), 0) 'Option2
Debug.Print WorksheetFunction.Match("D", .Columns(1), 0) 'Option3
End With
<小时/>

问题:

我知道 option2 丢失了智能感知并且不会进入 Debug模式,但是 option1 和 option3 的行为相同

  • 智能感知有效
  • 抛出错误,代码进入 Debug模式

而有关 WorksheetFunction 对象的文档 says我们可以使用 Application 对象的 WorksheetFunction 属性,似乎不这样做也能正常工作。

那么,在这方面使用 Application 对象引用有什么附加值(value)?不使用它的缺点是什么?

最佳答案

我想说,Application是全局上下文,当我们使用任何东西时,编译器无法在当前上下文中找到它,它最终会在Application中查找它在您的案例中找到 Application.WorksheetFunction 。所以两者应该是等价的。 (这就是 JavaScript 中的工作方式)但我可能是错的。

更新

Documentation指出某些函数和属性可以在没有 Application 的情况下调用。因此,Application.WorksheetFunction 与 WorksheetFunction 等效是正确的,但 Application 作为全局上下文是错误的。

更新

According to this interesing articleApplication 确实是默认对象:

The Application object is the Default Object, Excel assumes it even when it is not specified.

关于excel - Application.WorksheetFunction 与 WorksheetFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59212585/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com