【问题标题】:How to assign code for the command button created at runtime?如何为运行时创建的命令按钮分配代码?
【发布时间】:2017-04-05 20:14:00
【问题描述】:

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

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

【问题讨论】:

  • 不确定您的问题是什么?您想知道如何将多个 Sub 代码分配给 CommandButton 数组吗?你想要的值列表在哪里?
  • @ShaiRado 我想为运行时创建的每个命令按钮分配代码。如果 RevCounter=5,那么将创建 5 个命令按钮,需要 5 个代码。
  • @Ralph 我已经尝试过了,但我不确定代码是不起作用还是我写了错误的代码。可以举个例子吗

标签: vba excel commandbutton


【解决方案1】:

您要使用的过程是:

  • 在工作表中添加按钮

  • 使用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

您的问题中没有足够的信息来使其可扩展:您希望按钮做什么?您可以添加您要添加​​的子吗?

【讨论】:

  • 命令按钮在用户表单中,我想要做的是,当用户点击创建的按钮时,它将显示另一个表单,其中包含点击按钮的正确信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 2012-04-30
  • 1970-01-01
相关资源
最近更新 更多