动态添加按钮,如何在函数

时间:2016-06-10 14:26:07

标签: excel-vba vba excel

我动态地为我在表格中创建的每一行添加一个按钮。每个按钮都有一个唯一的名称,并调用相同的功能BtnGoogle。这个函数应该在放置按钮的同一行中返回一个值。由于按钮实际上不是行的一部分,我需要一些方法将行号传输到函数,但是我已经用完了思路:

    Set btn = sheet.Buttons.Add(targetCell.Left, targetCell.Top, targetCell.Width, targetCell.RowHeight)
    With btn
      .OnAction = "BtnGoogle"
      .Caption = "Google Tag"
      .Name = "Btn" & CStr(lastRow(columns("Button1").Index).Address)
    End With

Sub BtnGoogle()
    MsgBox Application.Caller
End Sub

我能够以这种方式在消息框中显示按钮名称,但我无法对该调用者执行任何操作并获取从字符串传入的行号。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Sub BtnGoogle()

    Dim addr As String

    addr = Replace(Application.Caller,"Btn","")

    MsgBox ActiveSheet.Range(addr).Value ' for example

End Sub