1

我有一个包含标签的用户表单。(我必须手动创建每个标签,因为我只能通过查看底层图像将它放置在正确的位置。)每个标签必须通过相同的“初始化”功能来设置/重新设置其外观。这导致具有以下内容:

 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 的所有知识,所以可能有一些看起来很糟糕的代码。欢迎提出改进建议)。

4

1 回答 1

0

对于表单控件,使用Controls方法。这可以单独使用,也可以在循环中使用:

for i=1 to 5
    frmUserForm.Controls("Label" & i).Enabled = True
next i

那有意义吗?

于 2013-06-19T21:03:45.123 回答