gpt4 book ai didi

excel - 用VBA编写Excel Addin,然后放置一个触发它的按钮

转载 作者:行者123 更新时间:2023-12-02 09:02:34 27 4
gpt4 key购买 nike

我用VBA编写了一个简单的Excel插件,它包含一个表单和相关代码。将其保存为加载项然后将其安装到 Excel 中后,什么也没有发生!

我需要在功能区中的某个位置放置一个按钮来触发我的加载项,就像“求解器”一样。我真的需要它,请告诉我如何。

我非常感谢任何建议。

最佳答案

试试这个,需要添加到您的外接程序中,无论是在模块中还是在 ThisWorkbook 中。

Private Const Button as String = "SomeName"

Sub Auto_Open 'Or Private Sub Workboo_Open() in ThisWorkbook
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 'Just in case a button with same name already exists
Application.DisplayAlerts = True
On Error GoTo 0

Set CmdBarMenuItem = CmdBarMenu.Controls.Add(Type:=msoControlButton)
With CmdBarMenuItem
.Caption = Button
.OnAction = "MainSub" 'Name of the sub it will call when button is pushed
End With

End Sub

请确保删除关闭 Excel 时的按钮,否则每次打开插件时都会添加一个额外的按钮。

Sub Auto_Close 'Or Private Sub Workbook_BeforeClose(Cancel As Boolean) in ThisWorkbook
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

您创建的子程序,您希望从按钮运行。

Public Sub MainSub
MsgBox("Hello")
End Sub

您还可以在加载项功能区中添加一个列表框来容纳多个按钮。首先创建一个 MenuItem 作为 type:=msoControlPopup 然后在弹出窗口中添加按钮如上。

除了此 VBA 代码之外,您还可以更轻松地转到"file"->“选项”->“自定义功能区”,添加带有新组的新选项卡,然后为该组分配一个宏。但这只对你有用,上面的代码将允许任何人安装插件并在打开时自动打开一个按钮。

希望这能回答您的问题。

关于excel - 用VBA编写Excel Addin,然后放置一个触发它的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10992205/

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