2012-11-14 83 views
1

我想使用字符串变量而不是硬编码窗体名称,如下所示。窗体(frmName)不工作

FrmMainControl.Controls 

但想使用它。

Forms("FrmMainControl").Controls 

但是,我得到了未定义的错误Sub或Function。请帮忙。这是VBA btw。

回答

1

假设表格为load ed,您可以搜索UserForms集合;

Dim form As UserForm: Set form = getInstanceOfLoadedUfrm("frmMainControl") 
If Not form Is Nothing Then 
    MsgBox form.Controls.Count 
Else 
    '//load 
    Set form = UserForms.Add("frmMainControl") 
    MsgBox form.Controls.Count 
End If 

Function getInstanceOfLoadedUfrm(name As String) As UserForm 
name = UCase$(name) 
For Each form In UserForms 
    If (Ucase$(form.name) = name) Then 
     Set getInstanceOfLoadedUfrm = form 
    End If 
Next 
End Function 
+0

谢谢。得到它与几个mods一起工作。 –