excel - 如何在vba中调用已分配给按钮的函数

标签 excel vba

我尝试在 Excel 中创建功能区,并且成功了。现在我已经为按钮分配了一个宏。

Function delete_cells(control As IRibbonControl)

现在,我创建了另一个宏,我需要从中调用函数delete_cells。我尝试按如下方式调用它。

Function modify_cells(control As IRibbonControl)
delete_cells
End Sub

我收到一条错误消息,提示参数不可选。请帮我解决这个错误。

最佳答案

我建议您创建一个单独的子例程,您可以从按钮的 OnAction 以及任何您想要调用它的其他地方调用它,例如:

'button macro
Sub cmdDeleteCells_OnAction(control as iRibbonControl)
DeleteCells
End Sub

'another Sub that calls the delete routine
Sub SomeOtherSub
DeleteCells
End Sub

'the one they're all talking about
Sub DeleteCells
msgbox "All your cells are toast, bwah hah hah ha!"
End Sub

编辑:如果您确实只想调用按钮的 OnAction 子函数,则还需要向其传递一个 iRibbonControl 对象,因此声明一个假对象:

Sub CallTheButtonsCode()
Dim FakeControl As IRibbonControl

cmdDeleteCells_OnAction FakeControl
End Sub

出于代码维护的原因,我真的不推荐这样做,但它确实有效。

关于excel - 如何在vba中调用已分配给按钮的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956585/

相关文章:

sql - ADODB/Excel 查询错误

如果行的一个单元格以特定字符串开头,VBA Excel 删除该行

excel - VBA - 从 XML 代码循环特定的子节点

vba - 将预定义的 excel 函数应用于 VBA for 循环数组以创建新函数

.net - 如何将 RTF 文本复制到剪贴板以便在 Excel 中使用

vba - 使用 VBA 解决问题

java - 如何使用 selenium webdriver 将 3 个不同变量中的 3 列值写入 Excel 工作表

vba - 如何让excel在满足条件时播放声音

excel - 在 VBA 中以编程方式锁定项目

sql - 为名称/值对数据创建 SQL 查询