【问题标题】:Activate USERFORM from excel add-ins从 excel 加载项激活 USERFORM
【发布时间】:2019-09-17 14:14:57
【问题描述】:

我用 3 个完美运行的模块编写了 VBA,当我从 Developer - VBA 窗口运行它时,用户窗体也能正常运行。我需要将用户表单添加到我的加载项中,以便在需要时激活。我添加了第 4 个模块来安装宏

Sub Add_MainframeScrape_Menu()
    Dim cbWSMenuBar As CommandBar
    Dim muInbound As CommandBarControl
    Dim iHelpIndex As Integer

    Set cbWSMenuBar = Application.CommandBars("Worksheet Menu Bar")
    iHelpIndex = cbWSMenuBar.Controls("Help").Index
    Set muInbound = cbWSMenuBar.Controls.Add(Type:=msoControlPopup, Before:=iHelpIndex)

    With muInbound
        .Caption = "EDIMACROS"
        With .Controls.Add '(Type:=msoControlPopup)
            .Caption = "EDIMACROS"
            .OnAction = "EDI_REPORTS"
       End With
    End With
End Sub

当我点击加载项时,我将以下代码添加到表单本身以启动

Public Sub EDI_MACROS_Initialize()
    Me.Show
End Sub

但它不起作用,请帮忙。

【问题讨论】:

  • EDI_REPORTS 应该是一个显示表单的 Sub,而不是表单的名称。
  • 应该是单独模型中的 Sub 还是表单本身下的 Sub。我右键单击表单并单击查看代码,然后我添加了 Public Sub EDI_REPORTS_Initialize() Me.Show End Sub
  • 但它不起作用。
  • 我明白你的意思.. 非常感谢你的帮助。

标签: excel vba userform


【解决方案1】:

OnAction 应该是显示表单的 Sub(在常规模块中)的名称,而不是表单的名称

Sub Add_MainframeScrape_Menu()
    Dim cbWSMenuBar As CommandBar
    Dim muInbound As CommandBarControl
    Dim iHelpIndex As Integer

    Set cbWSMenuBar = Application.CommandBars("Worksheet Menu Bar")
    iHelpIndex = cbWSMenuBar.Controls("Help").Index
    Set muInbound = cbWSMenuBar.Controls.Add(Type:=msoControlPopup, _
                                             Before:=iHelpIndex)

    With muInbound
        .Caption = "EDIMACROS"
        With .Controls.Add '(Type:=msoControlPopup)
            .Caption = "EDIMACROS"
            .OnAction = "Show_EDI_MACROS"
       End With
    End With
End Sub


Public Sub Show_EDI_MACROS()
    EDI_REPORTS.Show 'assumes your form is named "EDI_REPORTS"
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多