嘿伙计们,我在这里得到一个简短的问题。我搜索了一会儿,没有回答我搜索的那个。
在我的代码中,我运行了一个重复自己的程序。当用户关闭用户窗体时,它应该停止。现在它运行没有停止它。 由于程序每8秒调用一次,我想检查用户窗体是否仍然加载/打开。
- >我怎么能要求呢?
Public Sub NextPicture1()
PictureChange = Now + TimeValue("00:00:08")
If Onboarding_Projekt.Visible = True Then
Application.OnTime PictureChange, "NextPicture1"
End If
End Sub
先谢谢你的帮助, 最好的祝福 Lutscha
答案 0 :(得分:6)
您可以使用以下功能:
Public Function IsLoaded(formName As String) As Boolean
Dim frm As Object
For Each frm In VBA.UserForms
If frm.Name = formName Then
IsLoaded = True
Exit Function
End If
Next frm
IsLoaded = False
End Function
用法:
If IsLoaded("Form_Test") Then
'Do Something
End If
您的代码应如下所示:
Public Sub NextPicture1()
PictureChange = Now + TimeValue("00:00:08")
If IsLoaded("Onboarding_Projekt") Then
Application.OnTime PictureChange, "NextPicture1"
End If
End Sub
Public Function IsLoaded(formName As String) As Boolean
Dim frm As Object
For Each frm In VBA.UserForms
If frm.Name = formName Then
IsLoaded = True
Exit Function
End If
Next frm
IsLoaded = False
End Function
答案 1 :(得分:0)
我找到了一个有助于轻松识别它的字段:
if userform.visible=true then
do something
end if
答案 2 :(得分:0)
这是一个同时显示是否已加载和是否可见的版本:
"Uncaught Error: Invariant failed: You should not use <Route> outside a <Router>