有没有理由避免Application.Worksheetfunction?

时间:2013-08-29 18:38:44

标签: excel vba excel-vba worksheet-function

我正在编写一个宏来迭代一些记录并想要一个for循环以避免在循环时有任何无限的机会:

For i = 0 to COUNT
  **do stuff with START_CELL.Offset(i,0)
Next

我不记得如何从VBA计算一些事情,所以搜索发送给我:Use VBA to Count Non Blank Cells in a Column。一个建议是

n = Worksheets("Sheet1").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

这似乎过于复杂,所以我做了一些挖掘,并决定我将要使用:

COUNT = Application.WorksheetFunction.Count(COUNT_RANGE)

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

谢谢大家。

1 个答案:

答案 0 :(得分:5)

避免工作表函数的唯一显示停止原因是您担心向后兼容旧版本的Excel。新版本的Excel通常会引入新的工作表函数。如果您的用户无法使用这些功能,则可以使用这些功能。您将遇到困难的Excel版本。

除此之外,如果您知道用户正在使用的版本上提供的功能,它们通常非常高效并且通常比VBA中的等效版本更快,特别是如果它们避免在单元格中循环,如评价。