TmT*_*ron 3 excel vba userform
我有一个简单的用户窗体,上面有一个按钮。我想将此表单传递给另一个模块中的函数-但即使在同一模块内,它也无法按预期工作:
Private Sub Test(ByRef oForm As MSForms.UserForm)
Debug.Print "caption: >" & oForm.Caption & "<"
End Sub
Private Sub CommandButton3_Click()
Debug.Print "caption: >" & Me.Caption & "<"
Test Me
Debug.Print "caption: >" & Me.Caption & "<"
End Sub
Run Code Online (Sandbox Code Playgroud)
当我单击按钮时,它将打印到调试控制台:
caption: >UserForm1<
caption: ><
caption: >UserForm1<
Run Code Online (Sandbox Code Playgroud)
所以Test()子里面Caption是空白。
任何想法为什么这不起作用?
注意:如果我使用它Variant作为参数类型
类型UserForm并不直接等同于特定用户表单的实例,并且提供的界面略有不同。
通过表格as Object:
Private Sub Test(Form As Object)
Run Code Online (Sandbox Code Playgroud)
或者对于类型安全的方法,UserForm可以实现接口:
Private Sub Test(Form As IMyForm)
Run Code Online (Sandbox Code Playgroud)