为多个按钮分配动态代码

时间:2018-12-15 19:29:54

标签: excel vba excel-vba

首先,对这个问题的拙劣表述感到抱歉。

这是问题所在。使用宏,我创建了多个按钮,现在沿使用范围的最后一列,每个单元格中都有一个按钮。但是,它们都没有分配宏。

我想做的是拿出动态代码,它将使这些按钮执行所需的任务,这样我就可以避免为每个按钮编写一个宏。换句话说,我想学习的是;

如果点击了按钮i,请执行操作。

1 个答案:

答案 0 :(得分:0)

好吧,如果要添加单击事件处理程序(单击按钮时执行的方法),就足以在模块中定义它们(非常重要!),然后将方法名称分配给其中的OnAction您的按钮。请参见下面的示例代码:

Sub test()
    Dim btn As Button
    Application.ScreenUpdating = False

    Dim t As Range
    ' button will be placed in A1 cell
    Set t = Cells(1, 1)
    Set btn = Worksheets("Arkusz1").Buttons.Add(t.Left, t.Top, t.Width, t.Height)
    With btn
        ' here we assign an event handler
        .OnAction = "BtnAction"
        .Caption = "My button"
        .Name = "MyBtn"
    End With

    Application.ScreenUpdating = True
End Sub

以上代码在工作表中定义,而代码在模块(事件处理程序)中:

Sub BtnAction()
    MsgBox "Hello world!"
End Sub