gpt4 book ai didi

vba - VBA 中的 WorksheetFunction.IsNumber() 和 IsNumeric() 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 18:25:23 25 4
gpt4 key购买 nike

在 VBA 中使用这两个函数有什么不同?使用一个比另一个有速度优势吗?

Application.WorksheetFunction.IsNumber(myVar)
IsNumeric(myVar)

最佳答案

IsNumeric 是一个 VBA 标准库函数,位于 VBA.Information模块,如 IsArray , IsDate , IsError , Err , VarType , 和更多:

VBE Object Browser showing IsNumeric in the VBA standard library

作为 VBA 标准库的一部分,无论宿主应用程序如何,它都可以工作:可以安全地假定标准库存在于运行 VBA 的机器上。

Application.WorksheetFunction.IsNumber 另一方面,可在 Microsoft Excel 对象模型库中找到:

VBE Object Browser showing IsNumber in the Excel type library

因此,代码只有在引用 Excel 类型库时才能工作。如果您已经在 Excel 中,那不是问题。但是,如果您在 Word 中并且想要使用返回 Boolean 的函数。当给定String是数字,你不想仅仅为此引用整个 Excel 类型库。
WorksheetFunction interface 是通向 Excel 计算引擎的网关:使用它,您可以编写 VBA 代码,现在可以使用 INDEX/MATCH 对精心制作的纯 VBA 数组进行处理——这真是太棒了。但不能保证 Excel 的计算引擎的工作方式与 VBA 的工作方式完全相同。如果您想遵守 Excel 的规则,请使用 WorksheetFunction .

我可能会假设 VBA.Information.IsNumericExcel.WorksheetFunction.IsNumber 更快虽然:我可能是错的,但似乎只有 VBA 标准库涉及更少的事件部件。

但唯一的办法是:

You have two horses - race them!



;-)

关于vba - VBA 中的 WorksheetFunction.IsNumber() 和 IsNumeric() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51549786/

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