如何在函数内部设置用户窗体的属性

时间:2019-05-14 18:49:16

标签: vba

在UserForm_Activate()代码上,我想调用一个函数(尚未创建),该函数将设置Userform的滚动属性。请参见下面的代码。

Private Sub UserForm_Activate()
MakeFormResizable 
End Sub

在Modules4工作表上,我有以下代码:

Public Sub MakeFormResizable()
    Me.ScrollHeight = .Height
    Me.ScrollWidth = .Width
End Sub

运行粘贴的代码时,出现错误“编译错误:引用无效或不合格”。

2 个答案:

答案 0 :(得分:1)

由于Me是本地的,因此无法使用。

也许您希望将Userform对象传递给Public子对象,如下所示:

Public Sub MakeFormResizable(ByRef aUserform As MSForms.UserForm)

With aUserform
    'Do your stuff
End With

End Sub

答案 1 :(得分:0)

知道了!

Private Sub UserForm_Activate()
Dim MyObject
Set MyObject = Me
MakeFormResizable MyObject 
End Sub

Public Sub MakeFormResizable(MyObject)
With MyObject
.ScrollHeight = .Height
End If
End With
End Sub