I added to Paul's file in #13. I also added another row to the table with just one value in column 2.
One can setup the Cases to act on the Sub's name or number of elements in the array or such.
Sub Main()
Dim rng As Range, LR As ListRow, Arr, ws As Worksheet, txtctl As MSForms.TextBox
With MacroListSht.ListObjects("MacrosTable")
For Each LR In .ListRows
Set rng = LR.Range
Arr = Split(rng.Cells(1, 2).Value, ", ")
Select Case True
Case UBound(Arr) = 0
Application.Run Arr(0)
Case Arr(0) = "DisplayNameofTextBox"
Set ws = ThisWorkbook.Worksheets(rng.Cells(1, 1).Value)
Set txtctl = ws.OLEObjects(Arr(2)).Object
Application.Run Arr(0), ws, txtctl
Case Else
'do something else if nothing is true...
End Select
Next LR
End With
End Sub
Sub ShowActiveSheetsUsedRangesAddress()
MsgBox ActiveSheet.UsedRange.Address(external:=True), vbInformation, "ShowActiveSheetsUsedRangesAddress"
End Sub