首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检查用户表单是否打开

检查用户表单是否打开
EN

Stack Overflow用户
提问于 2018-05-28 17:58:12
回答 3查看 21.1K关注 0票数 9

我运行了一个重复运行的程序。当用户关闭用户表单时,它应该会停止。它不间断地运行。

由于程序每8秒调用一次,因此我希望在结束时检查用户表单是否仍被加载/打开。

代码语言:javascript
复制
Public Sub NextPicture1()
   PictureChange = Now + TimeValue("00:00:08")
   If Onboarding_Projekt.Visible = True Then
      Application.OnTime PictureChange, "NextPicture1"
   End If
End Sub
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-28 18:06:44

您可以使用如下函数:

代码语言:javascript
复制
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

用法:

代码语言:javascript
复制
If IsLoaded("Form_Test") Then
    'Do Something
End If

您的代码应如下所示:

代码语言:javascript
复制
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
票数 13
EN

Stack Overflow用户

发布于 2019-05-31 13:20:54

下面是一个同时显示是否已加载和是否可见的版本:

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2019-05-07 18:24:33

我找到了一个可以帮助轻松识别它的字段:

代码语言:javascript
复制
  If userform.Visible = True Then
      'do something
  End If
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档