有人可以解释一下为什么显示形式的方式和隐藏它的方式构造不同。
显示表单的代码 userform1.show
和隐藏它的代码 卸载userform1。
为什么没有用userform1.unload? 为什么unload写在userform前面?
提前谢谢。
答案 0 :(得分:3)
UserForm
课程有Show
和Hide
个方法。使用Show
将显示存在于内存中的表单实例,并且Hide
将隐藏它。隐藏意味着实例仍在内存中且可访问但不可见。
在VBA.Global
命名空间中,有Load
和Unload
方法。使用Load
,对象可以加载到内存中但不可见,并且需要调用Show
方法来显示表单。使用Unload
表单将被卸载,从内存中删除它,并且不再可以访问它。
因此,
Show/Hide
和Load/Unload
是使用表单的两种不同方式。
IMO:最简单的方法是创建一个类型的变量,例如: UserForm1
然后使用此变量。此变量包含对UserForm1
的引用,可用于显示或隐藏表单。
Dim frm1 As UserForm1
Set frm1 = New UserForm1 ' Creates new instance in memory but does not display it yet
frm1.Show ' Displays the form
frm1.Hide ' Hides form but it remains in memory and is still accessible
set frm1 = Nothing ' Removes connection between variable frm1 and form instance.
' If no other references are available the form instance can be removed from memory