Excel VBA – 用于每个标签/用户表单

我有一个Excel用户Userform ,在其上我有几个Labels ,其中一些是在Frame

以下可能吗?

 For each label [that is on the frame] [code] Next label 

如果是的话,你怎么做? 或者,你可以将他们中的一些人,然后控制他们作为该组的成员

 For each label in [groupname] [code] Next label 

? 如果是的话,你怎么做? 我试图把他们分组,但没有成功。

我希望这个user input interface表单可以作为一个user input interface还有一个仪表盘types的东西…当然,在worksheet上这样做会容易得多,但是你不能真的使它看上去很好, userform like,可以吗? (即作为一个小窗口运行没有菜单或除了“用户窗体”的区域之外的任何东西)。

试试这个循环表单中的所有标签:

 For Each ctrl In Me.Controls If TypeName(ctrl) = "Label" Then Debug.Print ctrl.Name End If Next ctrl 

而这个循环框架内的标签(在我的情况下名称框架1)

 For Each ctrl In Me.Frame1.Controls If TypeName(ctrl) = "Label" Then Debug.Print ctrl.Name End If Next ctrl 

扩大一点。 也适用于MS Access如下映射使用的标签。

Form OnOpen事件:

  Private Sub Form_Open(Cancel As Integer) List_Labels Me.Form End Sub 

被称为子程序(我把它们放在一个单独的模块中):

 Sub List_Labels(ByRef frm As Form) Dim ctrl As Control For Each ctrl In frm.Controls If TypeName(ctrl) = "Label" Then Debug.Print frm.Name & " - " & ctrl.Name & " value: " & ctrl.Caption End If Next ctrl End Sub