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

Vba 如何为运行时创建的命令按钮分配代码?,vba,excel,commandbutton,Vba,Excel,Commandbutton,我正在尝试为运行时创建的命令按钮创建代码。基于动态输入创建的命令按钮。我在这里找到了解决办法 问题是这段代码只用于一个命令按钮,我在运行时创建了几个命令按钮。这是我的密码 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 ctl

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

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

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个命令按钮。我需要为创建的每个命令按钮分配代码。

您要使用的过程是:

  • 在工作表中添加按钮

  • 使用
    子按钮name\u 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

您的问题中没有足够的信息使其可伸缩:您希望按钮做什么?你能添加你想添加的sub吗?

不确定你的问题是什么?您想知道如何将多个
Sub
代码分配给
CommandButton
的数组吗?您想要的值列表在哪里?@ShaiRado我想为运行时创建的每个命令按钮分配代码。如果RevCounter=5,那么将创建5个命令按钮,需要5个代码。你试过了吗?@Ralph我已经试过了,但我不确定代码是否无效或我写错了代码。你能给我一个例子吗?命令按钮在用户窗体中,我想做的是,当用户单击创建的按钮时,它将显示另一个窗体,其中包含所单击按钮的正确信息