检查用户窗体是否打开
Check if userform open
我运行 一个重复的程序。当用户关闭用户窗体时,它应该停止。 运行 秒不停。
由于程序每 8 秒调用一次自身,我想在最后检查用户窗体是否仍在加载/打开。
Public Sub NextPicture1()
PictureChange = Now + TimeValue("00:00:08")
If Onboarding_Projekt.Visible = True 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
用法:
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
我找到了一个应该有助于轻松识别它的字段:
If userform.Visible = True Then
'do something
End If
这里是一个版本,显示它是否已加载以及是否可见:
Function Userform_Check( _
form_name As String) _
As Integer
' Returns:
' 0 - Userform is not loaded
' 1 - Loaded but not visible
' 2 - Loaded and visible
' mUtilities.Userform_Check()
Dim frm As Object
Userform_Check = 0
For Each frm In VBA.UserForms
If frm.name = form_name Then
Userform_Check = 1
If frm.Visible Then Userform_Check = 2
Exit For
End If
Next frm
' Function Userform_Check( _
form_name As String) _
As Integer
End Function
我运行 一个重复的程序。当用户关闭用户窗体时,它应该停止。 运行 秒不停。
由于程序每 8 秒调用一次自身,我想在最后检查用户窗体是否仍在加载/打开。
Public Sub NextPicture1()
PictureChange = Now + TimeValue("00:00:08")
If Onboarding_Projekt.Visible = True 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
用法:
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
我找到了一个应该有助于轻松识别它的字段:
If userform.Visible = True Then
'do something
End If
这里是一个版本,显示它是否已加载以及是否可见:
Function Userform_Check( _
form_name As String) _
As Integer
' Returns:
' 0 - Userform is not loaded
' 1 - Loaded but not visible
' 2 - Loaded and visible
' mUtilities.Userform_Check()
Dim frm As Object
Userform_Check = 0
For Each frm In VBA.UserForms
If frm.name = form_name Then
Userform_Check = 1
If frm.Visible Then Userform_Check = 2
Exit For
End If
Next frm
' Function Userform_Check( _
form_name As String) _
As Integer
End Function