将 For/Next 与变量一起使用时遇到问题
Having trouble using For/Next with variables
我正在使用 excel 用户表单,在该表单上我创建了几个按顺序命名的标签字段。例如:
标签 1、标签 2...标签 X
我想从我单独构建的数组中为它们分配 .caption。使用 For/Next 循环在我的脑海中最有意义,但由于它是一个标签,我遇到了麻烦。我什至无法让代码以一种有意义的方式接受。以下是我正在尝试的...
For i = 1 To 100
Labeli.Caption = Array(i)
Next i
如果有办法将它保留在循环内,就会使代码不那么繁琐。预先感谢您的帮助。
试试这个:
i = 1
For Each itm In Me.Controls
If itm.Name = "Label" & i Then
itm.Caption = Array(i)
i = i + 1
End If
Next
您不能形成像 Labeli
这样的对象名称,其中 i 是变量。但是您可以遍历所有控件并检查该标签是否具有 Label1
等名称。
另一种方法:
For i = 1 To 100
Me.Controls("Label" & i).Caption = Array(i)
Next
您可以 "build" 像这样的标签名称:
Userform.Controls("Label" & i).Caption
Userform
是对用户窗体的引用,如果你将它写在用户窗体的代码隐藏中,你可以使用 Me.
但是如果你有一百个标签,可能有更好的方法来创建你的用户表单,这看起来有点像 XY-Problem
我正在使用 excel 用户表单,在该表单上我创建了几个按顺序命名的标签字段。例如: 标签 1、标签 2...标签 X 我想从我单独构建的数组中为它们分配 .caption。使用 For/Next 循环在我的脑海中最有意义,但由于它是一个标签,我遇到了麻烦。我什至无法让代码以一种有意义的方式接受。以下是我正在尝试的...
For i = 1 To 100
Labeli.Caption = Array(i)
Next i
如果有办法将它保留在循环内,就会使代码不那么繁琐。预先感谢您的帮助。
试试这个:
i = 1
For Each itm In Me.Controls
If itm.Name = "Label" & i Then
itm.Caption = Array(i)
i = i + 1
End If
Next
您不能形成像 Labeli
这样的对象名称,其中 i 是变量。但是您可以遍历所有控件并检查该标签是否具有 Label1
等名称。
另一种方法:
For i = 1 To 100
Me.Controls("Label" & i).Caption = Array(i)
Next
您可以 "build" 像这样的标签名称:
Userform.Controls("Label" & i).Caption
Userform
是对用户窗体的引用,如果你将它写在用户窗体的代码隐藏中,你可以使用 Me.
但是如果你有一百个标签,可能有更好的方法来创建你的用户表单,这看起来有点像 XY-Problem