我正在编写一个宏来迭代一些记录并想要一个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()
,但现在我仍然担心(偏执)我有理由避免它。有没有?
谢谢大家。
答案 0 :(得分:5)
避免工作表函数的唯一显示停止原因是您担心向后兼容旧版本的Excel。新版本的Excel通常会引入新的工作表函数。如果您的用户无法使用这些功能,则可以使用这些功能。您将遇到困难的Excel版本。
除此之外,如果您知道用户正在使用的版本上提供的功能,它们通常非常高效并且通常比VBA中的等效版本更快,特别是如果它们避免在单元格中循环,如评价。