任何理由避免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更快,尤其是在避免在单元中循环的情况下(如注释中所述)。