我試圖在用戶表單中獲取幾個命令按鈕的標題。我知道如何獲取一個命令按鈕的標題,但我不想復制粘貼所有命令按鈕的代碼,例如
Sub CommandButton1_Click()
CodeXYZ
End Sub
Sub CommandButton2_Click()
CodeXYZ
End Sub
....
是否有可能制作類似的東西
Sub Master_CommandButton_Click()
ActiveSheet.Range("A1").Value = Master_CommandButton.Caption
End Sub
編輯:我正在從表中動態加載標題(取決于行和列)。如果單擊命令按鈕之一,則單擊按鈕的標題將寫入單元格。
Private Sub UserForm_Initialize()
CommandButton1.Caption = ThisWorkbook.ActiveSheet.Range("B2").Value
CommandButton2.Caption = ThisWorkbook.ActiveSheet.Range("C2").Value
CommandButton3.Caption = ThisWorkbook.ActiveSheet.Range("D2").Value
CommandButton4.Caption = ThisWorkbook.ActiveSheet.Range("E2").Value
CommandButton5.Caption = ThisWorkbook.ActiveSheet.Range("F2").Value
End Sub
Private Sub CommandButton1_Click()
ThisWorkbook.ActiveSheet.Cells(5, 5).Value = CommandButton1.Caption
End Sub
我知道需要的不是定義每個按鈕本身。我想將 aa mastercode 交給所有按鈕。

uj5u.com熱心網友回復:
您可以使用類模塊來處理表單上所有命令按鈕的單擊事件。
這是一種方法。
創建一個名為的類模塊CCmdBtns并將此代碼添加到其中。
Option Explicit
Public WithEvents CmdGroup As MSForms.CommandButton
Private Sub CmdGroup_Click()
ThisWorkbook.ActiveSheet.Cells(5, 5).Value = CmdGroup.Caption
End Sub
在標準模塊中添加此代碼。
Option Explicit
Public CmdButtons() As New CCmdBtns
現在在用戶表單模塊中,您可以添加此代碼。
Option Explicit
Private Sub UserForm_Initialize()
Dim ctl As MSForms.Control
Dim cnt As Long
For Each ctl In Me.Controls
If TypeName(ctl) = "CommandButton" Then
cnt = cnt 1
ctl.Tag = ctl.BackColor
ReDim Preserve CmdButtons(1 To cnt)
Set CmdButtons(cnt).CmdGroup = ctl
End If
Next ctl
End Sub
現在,當您單擊用戶表單上的任何命令按鈕時,其標題將寫入活動作業表上的 E5。
請注意,您可以使用回圈來簡化用于設定標題的代碼。
Dim idx As Long
For idx = 1 To 5
Me.Controls("CommandButton" & idx).Caption = ThisWorkbook.ActiveSheet.Cells(2, idx 1).Value
Next idx
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/323732.html
