我有这个代码:从for
到1
有两个10
循环。在每个循环中声明一个变量k
。
Sub Test()
Dim i As Long
For i = 1 To 10
Dim k As Long
k = i * 2
Debug.Print k
Next
Dim j As Long
For j = 1 To 10
Dim k As Long 'error here
k = j * 2
Debug.Print k
Next
End Sub
但是,当我尝试运行它时,我得到一个duplicate declaration in the current scope
错误。我不知道为什么我得到它 - 不是变量的范围受循环限制,因为它是在它内部声明的?有没有办法删除第一个变量的残余,以便可以在第二个循环中创建一个具有相同名称的变量?
在过程中声明变量时,此变量对所有过程都有效,而不仅仅对于loops
。如果要清除变量,可以设置k = 0
当使用Dim语句声明局部变量时,只有声明它的过程正在运行时,该变量才会保留。通常,当过程完成运行时,不保留过程的局部变量的值,并释放分配给这些变量的内存。下次执行该过程时,将重新初始化其所有局部变量。
https://support.microsoft.com/en-us/help/141693/scope-of-variables-in-visual-basic-for-applications