gpt4 book ai didi

excel - VBA-检查是否加载了特定的用户表单

转载 作者:行者123 更新时间:2023-12-04 21:10:01 25 4
gpt4 key购买 nike

我想在运行代码时检查是否加载了用户表单。我尝试了几种方法,没有一个工作。我记得我以前做过,但我不记得我的解决方法。任何想法?

我在这里和其他地方找到了一些解决方案,它们也不起作用!

问题是……

  • vba.userforms 只接受索引号,而不是字符串索引,
  • 在用户窗体上的循环中,某些属性(例如名称)无法检查!

  • 这是我的尝试:
    Public Function IsFormVisible(FrmName As String) As Boolean
    On Error GoTo errorH
    IsFormVisible = False
    Set Frm = UserForms(FrmName)
    If Not Frm Is Nothing Then IsFormVisible = True
    End Function
    errorH:
    IsFormVisible = False
    End Function
    Public Function IsFormVisible(FrmName As String) As Boolean
    Dim Frm As UserForm
    On Error GoTo errorH
    IsFormVisible = False
    For Each Frm In VBA.UserForms
    If Frm.Name = FrmName Then
    IsFormVisible = True
    Exit Function
    End If
    Next
    errorH:
    IsFormVisible = False
    End Function

    最佳答案

    这里有两个简单的选项。首先,您可以声明 frmObject :

    Public Function IsFormVisible(FrmName As String) As Boolean
    Dim Frm As Object
    On Error GoTo errorH
    IsFormVisible = False
    For Each Frm In VBA.UserForms
    If LCase$(Frm.Name) = LCase$(FrmName) Then
    IsFormVisible = True
    Exit Function
    End If
    Next
    errorH:
    IsFormVisible = False
    End Function

    或者第二个,你可以使用 TypeName而不是 .Name :
    Public Function IsFormVisible(FrmName As String) As Boolean
    Dim Frm As UserForm
    'On Error GoTo errorH
    IsFormVisible = False
    For Each Frm In VBA.UserForms
    If lcase$(TypeName(Frm)) = lcase$(FrmName) Then
    IsFormVisible = True
    Exit Function
    End If
    Next
    errorH:
    IsFormVisible = False
    End Function

    我已经使这两个都不区分大小写。

    关于excel - VBA-检查是否加载了特定的用户表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52818343/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com