我有一个使用InStr()来定位字符串中的字符的函数,但我知道在Excel中有一个名为FIND()的内置函数。任何人都可以建议更快或更高效的cpu?
hours_position = InStr(1, value, " ")
VS
hours_position = Application.WorksheetFunction.Find(" ", value, 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对象。但是,它们有不同的用途:您不能使用它们来搜索字符串中的文本,而是搜索具有指定内容的单元格。