Asigne controladores de eventos a los controles en el formulario de usuario creados dinámicamente en VBA

He encontrado muchos recursos en internet que hacencasiLo que quiero hacer, pero no del todo. Tengo un rango denominado "lista de días". Para cada día en la lista de días, quiero crear un botón en un formulario de usuario que ejecutará la macro para ese día. soy capaz deagrega los botones dinámicamente pero no sé cómo pasar el daycell.text desde el rango nombrado, al botón, al controlador de eventos, a la macro: S Aquí está el código que tengo para crear el formulario de usuario:

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

Para solucionar el problema anterior, actualmente le pido al usuario que escriba el día que desea ejecutar (por ejemplo, el Día 1) y lo pase a la macro y funciona:

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

Por lo tanto, para cada uno de mis runButtons, debe mostrar daycell.text y ejecutar una macro que use ese mismo texto como parámetro para seleccionar la hoja de trabajo para hacer su trabajo.

Cualquier ayuda sería increíble. He visto respuestas que escriben dinámicamente el código vba para manejar las macros, pero creo que debe haber alguna forma de hacerlo de forma más elegante a través de los parámetros de paso, pero no estoy seguro de cómo hacerlo. ¡Muchas gracias de antemano!

Respuestas a la pregunta(2)

Su respuesta a la pregunta