Przypisz programy obsługi zdarzeń do formantów na formularzu użytkownika tworzonych dynamicznie w VBA

Znalazłem wiele zasobów w Internecieprawieco chcę zrobić, ale nie do końca. Mam listę nazw „zakres”. Dla każdego dnia w dzienniku chcę utworzyć przycisk na formularzu użytkownika, który będzie uruchamiał makro tego dnia. jestem w staniedynamicznie dodawaj przyciski ale nie wiem, jak przekazać tekst daycell.text z podanego zakresu, do przycisku, do modułu obsługi zdarzeń, do makra: S Heres kod, który muszę utworzyć w formularzu użytkownika:

Sub addLabel()
ReadingsLauncher.Show vbModeless
Dim theLabel As Object
Dim labelCounter As Long
Dim daycell As Range
Dim btn As CommandButton
Dim btnCaption As String


For Each daycell In Range("daylist")
    btnCaption = daycell.Text
    Set theLabel = ReadingsLauncher.Controls.Add("Forms.Label.1", btnCaption, True)
    With theLabel
        .Caption = btnCaption
        .Left = 10
        .Width = 50
        .Top = 20 * labelCounter
    End With

    Set btn = ReadingsLauncher.Controls.Add("Forms.CommandButton.1", "runButton", True)
    With btn
        .Caption = "Run Macro for " & btnCaption
        .Left = 80
        .Width = 80
        .Top = 20 * labelCounter
    '   .OnAction = "btnPressed"
    End With

    labelCounter = labelCounter + 1
Next daycell

End Sub

Aby obejść powyższy problem, obecnie monituję użytkownika o wpisanie dnia, który chcą uruchomić (np. Dzień1) i przekazanie go do makra i działa:

Sub B45runJoinTransactionAndFMMS()


loadDayNumber = InputBox("Please type the day you would like to load:", Title:="Enter Day", Default:="Day1")

Call JoinTransactionAndFMMS(loadDayNumber)

End Sub

Sub JoinTransactionAndFMMS(loadDayNumber As String)
xDayNumber = loadDayNumber

Sheets(xDayNumber).Activate
-Do stuff

End Sub

Tak więc dla każdego z moich przycisków runButton musi wyświetlać tekst daycell.text i uruchamiać makro, które używa tego samego tekstu jako parametru, aby wybrać arkusz do wykonania swoich rzeczy.

Każda pomoc byłaby niesamowita. Widziałem odpowiedzi, które dynamicznie zapisują kod vba, aby poradzić sobie z makrami, ale wierzę, że musi istnieć jakiś sposób, w jaki można to zrobić bardziej elegancko poprzez przekazywanie parametrów, po prostu nie wiem jak. Z góry bardzo dziękuję!

questionAnswers(2)

yourAnswerToTheQuestion