VBA问题:如何在for循环结束后,仍保留循环中得到的值
Option Base 1 Sub aaa() Dim gongxu As Variant gongxu = Array("测量放线", "清理作业带", "挖沟", "焊接", "检测") Dim j% For j = 1 To 5 Dim hang() As Variant hang = Array("", "", "", "", "") On Error Resume Next hang(j) = Application.WorksheetFunction.Match(gongxu(j), Sheets(1).Range("a1: a30"), 0) MsgBox hang(j) Next j '问题出在这里,我仍想使用以上循环中得到的5个值,但执行后提示hang(1)="",为空。 MsgBox hang(1) End Sub
将过程内的局部变量声明为静态的就可以了。 例如: 可以将Dim hang() As Variant 修改为:Static hang() As Variant 或者将整个过程声明为静态的,这样内部的所有局部变量都将是静态的,就可以保留过程计算中所存储的数值。 把 Sub aaa() 修改为:Static Sub aaa()
答:for i = 1 to 10n = n + 1NextWScript.Echo i保存为vbs文件,执行结果,11详情>>