我有一个包含标签的用户表单。 (我必须手动创建每个标签,因为我只能通过查看底层图像将其放置在正确的位置。)每个标签必须通过相同的“初始化”功能来设置/重新设置其外观。这导致具有以下内容:
dummy = Initialize(UserForm1.Lable1)
dummy = Initialize(UserForm1.Lable2)
dummy = Initialize(UserForm1.Lable3)
.
.
.
我的代码中的名称更具描述性,并且我具有存储在Excel工作表列中的标签的实际名称。所以,我想创建一个遍历该列的for循环,并将“.Lable#”替换为“。(列名称)”,如下所示:
For i = 1 to 10
dummy.Initialize(UserForm1.ThisWorkbook.Sheets("Sheet1").Cells(i,2))
Next i
上面的代码自然不起作用,因为单元格中的值是一个字符串。因此,我需要一种将该字符串转换为对象名称的方法。有什么想法吗?
希望这是有道理的,这是可能的。
感谢您的时间,
马文
(我从互联网上学到了所有关于VBA的知识,所以可能有一些不好看的代码。欢迎提出改进建议)。
答案 0 :(得分:0)
对于表单控件,请使用Controls
方法。这可以单独使用,也可以在循环内使用:
for i=1 to 5
frmUserForm.Controls("Label" & i).Enabled = True
next i
这有意义吗?