哪个在Excel VBA中更快:InStr或Find?

时间:2017-09-06 10:45:43

标签: excel vba function

我有一个使用InStr()来定位字符串中的字符的函数,但我知道在Excel中有一个名为FIND()的内置函数。任何人都可以建议更快或更高效的cpu?

hours_position = InStr(1, value, " ")

VS

hours_position = Application.WorksheetFunction.Find(" ", value, 1)

1 个答案:

答案 0 :(得分:2)

两者都是相同的,它会做同样的动作。

大多数(但不是全部)工作表函数也可以从VBA调用。例如,您可以通过调用Application.WorksheetFunction.VLookup(或Application.VLookup)在VBA中使用VLOOKUP工作表函数。

同样,您可以使用Application.WorksheetFunction.Find和Application.WorksheetFunction.Search。您可以使用它们来模拟工作表函数在VBA代码中的工作方式。

这些功能仅在Excel VBA中可用,而InStr是一种通用的VBA功能,可在所有Office应用程序(以及VB6,VB.NET等)中使用。

除此之外,Excel VBA中的Range对象具有Find方法,Worksheet对象具有Find对象。但是,它们有不同的用途:您不能使用它们来搜索字符串中的文本,而是搜索具有指定内容的单元格。