【发布时间】:2013-09-05 14:36:11
【问题描述】:
您好,我刚开始学习 vba,有一个问题
每当我在我的 VBA 代码中使用 For Next 循环函数时,我总是需要创建一个变量“Cell”还是不需要?
【问题讨论】:
-
只需谷歌“For next loop vba excel”。您可能会看到很多关于如何使用 for next 循环的不同示例,包括一些不使用“Cell”变量的示例
您好,我刚开始学习 vba,有一个问题
每当我在我的 VBA 代码中使用 For Next 循环函数时,我总是需要创建一个变量“Cell”还是不需要?
【问题讨论】:
当您使用 FOR...NEXT 语句时,您确实需要有一个变量来计数,以及一个开始和结束。但是,您不需要使用 Cell 作为计数器。
在 Visual Basic 中,按 F1 并在搜索框中键入“for”。这足以让您开始!
【讨论】:
不,您不必为它创建变量,非常欢迎您直接调用单元格。下面,假设您正在检查 A1:A10 以查看单元格是否包含字符串“Foo”:
For i = 1 To 10
If Cells(i, 1).Value = "Foo" Then
'Do something
End If
Next
如果你为它创建一个变量,它会是这样的:
For i = 1 To 10
cellValue = Cells(i, 1).Value
If cellValue = "Foo" Then
'Do something
End If
Next
现在,通常您不需要创建变量来存储值,特别是如果您只使用一次或两次,因为存储变量的行为会抵消您仅引用单元格所获得的任何速度提升直接地。另外,正如您在上面看到的,直接调用单元格有明显的好处,例如在循环时(您可以使用“Range("A" & i)”或“cells(i, 1)”,但后者更快并且更适合循环,尤其是因为它不包含任何连接)。
重点
话虽如此,如果您要在循环中多次引用该单元格的内容,那么将其存储在“单元格”之类的变量中并进行处理比调用 Excel 更有效每次的价值。我的一般规则是,如果我引用单元格的内容超过 2 次,我会将其存储在一个变量中。
将值存储在变量中的另一个好处是能够更轻松地设置断点并在出现问题时查明。
【讨论】: