Назначьте обработчики событий для элементов управления в пользовательской форме, созданной динамически в VBA

Я нашел много ресурсов в Интернете, которые делаютпочти Что я хочу сделать, но не совсем. У меня есть именованный диапазон "дневник". Для каждого дня в dayList я хочу создать кнопку в форме пользователя, которая будет запускать макрос для этого дня. Я способен на добавляем кнопки динамически но не знаю, как передать daycell.text из именованного диапазона, в кнопку, в обработчик событий, в макрос: S Вот код, который мне нужен для создания формы пользователя:

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

Чтобы обойти вышеупомянутую проблему, я в настоящее время предлагаю пользователю ввести день, который он хочет запустить (например, День 1), и передать его макросу, и он работает:

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

Для каждого из моих runButtons необходимо отобразить daycell.text и запустить макрос, который использует тот же текст в качестве параметра, чтобы выбрать рабочий лист для выполнения своих задач.

Любая помощь будет потрясающей. Я видел ответы, которые динамически записывают код vba для обработки макросов, но я считаю, что должно быть что-то, что можно сделать немного более элегантно с помощью передачи параметров, просто не знаю, как. Спасибо заранее

Ответы на вопрос(2)

Ваш ответ на вопрос