【发布时间】:2016-05-21 06:52:34
【问题描述】:
最近有人指出,某些 Excel 函数是易变的,这意味着每次工作表发生变化时都会触发它们,而其他函数则不会。现在这让我明白了我的大部分 VBA 使用都是在一个范围内循环的,我想知道这两种方法中的哪一种是首选的,为什么? 案例做while循环;
Dim i as long
i = 1
Do while cells(i,1) <> ""
...
i = i + 1
Loop
或者for循环
Dim curCell as cell
for curCell = cells(1,1) to cells(1,1).end(xlDown)
...
Next curCell
(请注意,确切的代码可能不正确,因为我目前无法使用 Excel 访问计算机)
编辑(在约翰的话之后);据我在第一个示例中看到的,每次循环循环时都会请求目标单元格值,在第二个示例中,单元格只会被请求两次,并且 .end(xlDown) 不需要 vba 层,而是一个标准功能因此第二个选项可能运行得更快。
提前致谢
【问题讨论】:
-
我看不出波动性与循环类型之间的选择之间有任何联系。这两个主题似乎毫无关联。循环的选择主要取决于口味。
-
我明白你的意思,请看我的编辑。
标签: excel vba for-loop while-loop