Excel宏和命令按钮

问题描述 投票:1回答:1

我创建在Outlook VBA的用户窗体,我已经设置了提供在选择不同的选项选项按钮,一切工作正常,如果我只去一次经过然而,

vba outlook
1个回答
1
投票

如果我回去,通过第二次的选项按钮从以前的运行通过仍处于选中状态。

你显示窗体的默认实例。

UserForm1.Show

您现在看到意味着你有那就是维持调用之间的状态的短暂的,全球范围内的对象。

如果你想“开始清理”每次显示的形式的时候,你有两个选择 - 一个将Unload瞬态对象,当你用它做:

UserForm1.Show
'do stuff
Unload UserForm1

另一个(更清洁IMO)将停止使用,全球范围的对象,并创建一个本地所代替范围的,具有更清晰的寿命:

With New UserForm1 ' object created here
    .Show
    'do stuff
End With ' object dies here

要么:

Dim frm As UserForm1
Set frm = New UserForm1 ' object created here
frm.Show
'do stuff
'frm object goes out of scope and is destroyed at the end of the procedure

这是否伤了你的其他代码,取决于有多少的其它代码对窗体的默认实例编写。您正在使用Me在您所提供的示例代码,这是一个好兆头:这意味着你已经写了反对任何当前实例是代码,而不是如For Each c In UserForm1.Controls,这将是在遍历窗体的默认实例的控制 - 这可能是在不同的状态下比在当前实例的控制。

有关使用表单的详细信息,请参阅UserForm1.Show,文章我去年在细节有什么不对的默认实例的方式解释写道。

© www.soinside.com 2019 - 2024. All rights reserved.