任何理由避免Application.Worksheetfunction?

我正在写一个macros来遍历一些logging,并想要一个for循环,以避免任何无限循环的机会,如:

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

我不记得如何从VBA做一些事情,所以search发送给我在这里: 使用VBA来计算列中的非空白单元格 。 有一个build议是

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

这似乎过于复杂,所以我做了更多的挖掘,并决定我要使用:

 COUNT = Application.WorksheetFunction.Count(COUNT_RANGE) 

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

谢谢大家。

唯一能够避免工作表函数的阻碍原因是如果您担心与旧版本的Excel向后兼容。 新版本的Excel通常会引入新的工作表函数。 如果这些在用户版本的Excel中不可用,则会遇到困难。

除此之外,如果您知道用户正在使用的版本中提供的function,它们通常非常高效,而且通常比VBA中的function更快,尤其是在避免在单元中循环的情况下(如注释中所述)。