如何获取对象方法(对象。“某事物”),其中方法名称来自字符串列表(“某事物”是字符串)?

时间:2013-06-19 20:46:19

标签: string vba excel-vba excel

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

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

1 个答案:

答案 0 :(得分:0)

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

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

这有意义吗?