我在使用用户表单方面取得了进展。单击工作表按钮时,我显示用户窗体。该按钮将调用startProgressIndicator()
Sub startProgressIndicator()
UserForm1.Show
End Sub
我将其作为用户表单代码:
Private Sub UserForm_Activate()
Call myCode
End Sub
然后我想隐藏进度栏,并要求用户输入。这发生在myCode
中。我在UserForm1.Hide
的开头加入了myCode
。
在获得用户输入后,我想再次显示进度指示器。
我尝试了UserForm1.Show
,但是,这只是再次调用myCode
。我只想再次看到相同的用户窗体。
我尝试使用UserForm1.Visible = False
,但随后出现此错误
功能或接口标记为受限,或者功能使用 Visual Basic不支持自动化类型
答案 0 :(得分:1)
简短的答案是重写myCode
,使其不包含.Hide
。将myCode
分成逻辑块。
但是,您应该将逻辑与显示分开(请参阅Rubberduck UserForm1.Show(*))。这样-您仅在需要时才从表单中调用.Hide
(例如,在“关闭”按钮上单击)。
@ChrisNeilsen建议使用_Initialize
,这样可以解决当前的问题,但将来不会为您提供更好的编程方法。同样,如果您决定修改myCode
,则可能会遇到难以识别的错误。
@ChrisNeilsen:使用“ UserForm_Initialize”而不是“ UserForm_Activate”
(*)不需要免责声明,我与Rubberduck毫无关系,但确实读得很好!