【问题标题】:Excel 2007 Add-in in Ribbon doesn't work功能区中的 Excel 2007 加载项不起作用
【发布时间】:2016-02-15 11:28:44
【问题描述】:

我看到用户名 Rory 发布的一些代码并想对其进行编辑,以便我可以从功能区中的加载项运行我的宏。在我将它们全部粘贴到 ThisWorkBook 模块中后,它确实在那里添加了功能区按钮,但每次单击它时,我都会得到:

此工作簿中的宏可能不可用,或者所有宏都可能被禁用"

我很确定我在 Excel 选项中启用了所有宏选项。以下是代码,都在“ThisWorkBook”下:

Private Const Button As String = "SomeName"

Sub Auto_Open()
  Dim CmdBar As CommandBar
  Dim CmdBarMenu As CommandBarControl
  Dim CmdBarMenuItem As CommandBarControl

  Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
  Set CmdBarMenu = CmdBar.Controls("Tools")   ' Index 6

On Error Resume Next
     Application.DisplayAlerts = False
     CmdBarMenu.Controls(Button).Delete
     Application.DisplayAlerts = True
On Error GoTo 0

Set CmdBarMenuItem = CmdBarMenu.Controls.Add(Type:=msoControlButton)
With CmdBarMenuItem
   .Caption = Button
   .OnAction = "Hello"
End With

End Sub

Sub Auto_Close()
Dim CmdBar As CommandBar
Dim CmdBarMenu As CommandBarControl

Set CmdBar = Application.CommandBars("Worksheet Menu Bar")
Set CmdBarMenu = CmdBar.Controls("Tools")   ' Index 6

On Error Resume Next
     Application.DisplayAlerts = False
     CmdBarMenu.Controls(Button).Delete
     Application.DisplayAlerts = True
On Error GoTo 0

End Sub

Sub Hello()
MsgBox ("Hello")
End Sub

【问题讨论】:

    标签: excel vba add-in ribbon


    【解决方案1】:

    所以这里的代码给你错误的'.onAction'如下所示:

    With CmdBarMenuItem
       .Caption = Button
       .OnAction = "Hello"
    End With
    

    这里的想法是您需要将“Hello”重新编程为宏。现在它正在寻找一个名为“Hello”的子程序,但找不到它。如果您将所有代码都放在“ThisWorkbook”中,我建议您在此处也指出这一点,以使其具有更强的类型。下面是一个示例,如果您希望按钮调用您在 ThisWorkbook 中创建的名为“MyClick_Event”的例程:

    With CmdBarMenuItem
       .Caption = Button
       .OnAction = "ThisWorkbook.MyClick_Event"
    End With
    

    您还可以从其他 VBA 工作表创建调用,例如:

    With CmdBarMenuItem
       .Caption = Button
       .OnAction = "Sheet1.MyClick_Event"
    End With
    

    【讨论】:

    • 请问我再问一个问题——如果我要把它放在一个模块中我该怎么办?不,我有一个问题,当我在其他电子表格上运行插件时,它仍然引用我从中构建插件的电子表格上的值。我将操作更改为将使用电子表格上的某些值的事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2023-01-31
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多