【发布时间】:2016-10-30 01:07:00
【问题描述】:
我正在处理一些遗留代码,并遇到了一些对我来说非常新且有趣的东西。
VBA 过程有一个声明和分配的变量。在For 循环中使用相同的变量作为迭代变量。循环工作正常并产生正确的结果。Soem如何变量同时保留两个值,a.)由代码分配的值,b.)在For循环中分配的值我想了解的是如何?它是VBA 的鲜为人知的/隐藏功能之一,还是我只是想多了,错过了一个非常基本的概念?
请查看示例代码和 cmets。
Sub test()
Dim lTest As Long
'/ Assignment here.
lTest = 10
'/ How this loop runs. When I assign lTest=0 in the `For` loop then
'/ shouldn't the loop exit at lTest -1 ? If I don't assign any value to lTest, then
'/ the loop behaves as expected and exits without any iteration.
For lTest = 0 To lTest - 1
Debug.Print lTest
Next
End Sub
【问题讨论】:
-
使用与循环命令中指定的迭代器变量不同的命名迭代器变量。
-
@Parfait,好一个:)。我知道这不是最佳做法。你的建议是。我问这个问题只是想弄清楚这是一个小故障还是背后有一个合乎逻辑的解释。
标签: vba variables for-loop scope