有什么理由避免Application.Worksheetfunction吗?

ptp*_*son 5 excel vba worksheet-function excel-vba

我正在编写一个宏以遍历一些记录,并希望进行for循环,以避免在循环时出现无限的机会,例如:

For i = 0 to COUNT
  **do stuff with START_CELL.Offset(i,0)
Next
Run Code Online (Sandbox Code Playgroud)

我不记得如何从VBA进行计数,因此搜索将我发送到这里:使用VBA计数Column中的非空白单元格。一个建议是

n = Worksheets("Sheet1").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
Run Code Online (Sandbox Code Playgroud)

这似乎过于复杂,所以我做了一些进一步的挖掘,然后决定要使用:

COUNT = Application.WorksheetFunction.Count(COUNT_RANGE)
Run Code Online (Sandbox Code Playgroud)

该页面上的另一个示例 Application.WorksheetFunction.CountA(),但是现在我仍然很担心(偏执),我有理由避免使用它。有吗

谢谢大家

Jam*_*ull 5

避免工作表功能的唯一阻碍因素是,如果您担心与旧版本的Excel向后兼容。新版本的Excel通常会引入新的工作表功能。如果您的用户版本的Excel中没有这些功能,您将遇到麻烦。

除此之外,并且如果您知道用户使用的版本上提供的功能,则它们通常非常有效,并且通常比VBA中的等效功能更快,尤其是如果他们避免循环访问单元格(如评论中所述)。