2017-04-05 77 views
0

我想創建在運行時創建的命令按鈕的代碼。基於動態輸入創建的命令按鈕。我發現這裏的解決方案如何爲在運行時創建的命令按鈕分配代碼?

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個命令按鈕。我需要爲每個創建的命令按鈕分配代碼。

+0

不確定你的問題是什麼?你想知道如何將多個'Sub'代碼分配給'CommandButton'的數組?你想要的價值清單在哪裏? –

+0

@ShaiRado我想爲運行時創建的每個命令按鈕分配代碼。如果RevCounter = 5,那麼將會創建5個命令按鈕並且需要5個代碼。 –

+0

你有沒有試過[ctlTXT.OnAction =「nameOfMacroToRun」](http://stackoverflow.com/a/2783413/1153513)? – Ralph

回答

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 

在你的問題中沒有足夠的信息來使這個可擴展:你想要按鈕做什麼?你可以添加你想添加的子嗎?

+0

命令按鈕是在用戶的形式,我想要做的是,當用戶點擊創建的按鈕,它會顯示另一個形式與點擊按鈕的正確信息 –