如果模块名称更改了VBA,如何在模块中引用宏?

时间:2017-07-08 11:00:04

标签: vba excel-vba excel

我正在尝试引用我已更改名称的模块中的宏,因为列表正在增长,我需要有一个特定的名称,所以我不会开始寻找合适的名称。我的问题是我正在创建一个自定义功能区菜单,我正在尝试将宏分配给按钮,但我只能成功引用标准命名模块ex module1中的宏。下面的图片将澄清我的情况。

Module Name

下面是我创建按钮的代码,我仍在尝试使用它来查看,但我想要实现的是方形按钮,有人可以指向正确的方向,这将是惊人的。目前唯一有效的按钮是它位于Module1的upperCase和RemoveAddIn。

Private Sub AddButtons()
     '
     'change 'Startups...' to suit
    Const MyControl As String = "Applications..."
     'change 'Manage Startups' to suit
    Const MyControlCaption As String = "Manage Applications"
     '
    Dim AddinTitle As String, Mybar As Object
     '
    AddinTitle = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4)
     '
    Call RemoveButtons
     '
    On Error GoTo ErrHandler
    Set Mybar = Application.CommandBars("Worksheet Menu Bar") _
    .Controls("Tools").Controls _
    .Add(Type:=msoControlPopup, before:=13)
     '
    With Mybar
        .BeginGroup = True
        .Caption = MyControl
         '-------------------------------------------------------------
        .Controls.Add.Caption = MyControlCaption
        .Controls(MyControlCaption).OnAction = "ShowStartupForm"
         '-------------------------------------------------------------
        With .Controls.Add
            .BeginGroup = True
            .Caption = "About " & AddinTitle
        End With
        .Controls("About " & AddinTitle).OnAction = "ShowAboutForm"
         '-------------------------------------------------------------
        .Controls.Add.Caption = "Remove " & AddinTitle
        .Controls("Remove " & AddinTitle).OnAction = "RemoveAddIn"
        .Controls.Add.Caption = "upperCase " & AddinTitle
        .Controls("upperCase " & AddinTitle).OnAction = "upperCase"
         '-------------------------------------------------------------
    End With
    Exit Sub
     '
ErrHandler:
    Set Mybar = Nothing
    Set Mybar = Application.CommandBars("Tools") _
    .Controls.Add(Type:=msoControlPopup, before:=13)
    Resume Next
End Sub

0 个答案:

没有答案