嗨我刚开始学习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 次,我将它存储在一个变量中。
将值存储在变量中的另一个好处是能够更轻松地设置断点并在出现问题时查明。