如何为运行时创建的命令按钮分配代码?

时间:2017-04-05 12:01:24

标签: vba excel-vba commandbutton excel

我正在尝试为运行时创建的命令按钮创建代码。基于动态输入创建的命令按钮。我在这里找到了解决方案

Assign code to a button created dynamically

问题是这个代码只用于一个命令按钮,我在运行时创建了几个命令按钮。这是我的代码。

For i = 1 To RevCounter

Set ctlTXT = Me.Controls.Add("Forms.CommandButton.1")
ctlTXT.name = "Rev" & i
ctlTXT.Caption = Sheet4.Range("D" & i + 5).value
ctlTXT.Left = 18
ctlTXT.Height = 18: ctlTXT.Width = 72
ctlTXT.Top = 15 + ((i - 1) * 25)

Next

问题是,如何为运行时创建的命令按钮分配代码。例如,如果RevCount = 5,则在运行时将创建5个命令按钮。我需要为每个创建的命令按钮分配代码。

1 个答案:

答案 0 :(得分:0)

您要使用的过程是:

  • 在表单中添加按钮

  • 使用sub buttonname_click()格式

  • 添加相关代码

你有第一部分,所以我们将在这里处理第二部分。代码需要添加到相关工作表的代码模块中;因此,此代码会将代码添加到活动工作表的代码模块中,这可能就是您所需要的。

Sub addcode()
    Dim subtext As String
    subtext = "Sub PrintStuff" & vbCrLf & "msgbox ""Hello World""" & vbCrLf & "End Sub"
    With Workbooks(ThisWorkbook.Name).VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        .InsertLines .CountOfLines + 1, subtext
    End With
End Sub

你的问题中没有足够的信息可以使这个可扩展:你想要按钮做什么?你能添加你想要添加的子吗?