我希望在运行时创建的每个按钮都有一个_Click事件处理程序:
'Add month indicators
For intMonth = 1 To intMonthCount 'for example: 10
formTarget.frmCalendar.Controls.Add "Forms.CommandButton.1", "cmdCalendarMonth" & intMonth, True
With formTarget.frmCalendar.Controls("cmdCalendarMonth" & intMonth)
.Caption = intMonth
.Font.Size = 10
.Height = 20
.Width = 24
.Top = 30
.Left = intMonthPositionLeftCompensation
End With
intMonthPositionLeftCompensation = intMonthPositionLeftCompensation + 24
Next intMonth
_Click事件处理程序基本上应该与调用按钮的名称相同,例如:MsgBox formTarget.frmCalendar.cmdCalendarMonthXX.Name
其中cmdCalendarMonthXX
代表单击的按钮。
我经常搜索并遇到两个解决方案:
这两个都在这里说明:VBA Many buttons point to the same _Click sub
我的目标是创建一个自定义日历的单个模块,因此如果可能的话,我想避免使用自定义类。 那么 - 我可以在我的模块中实现另一种解决方案吗?