2012-11-14 38 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一起工作。 –