VBA:_Click事件在运行时创建的按钮

时间:2016-05-24 08:15:40

标签: vba event-handling

我希望在运行时创建的每个按钮都有一个_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代表单击的按钮。

我经常搜索并遇到两个解决方案:

  1. 为每个按钮写一个存根(由于我不知道有多少按钮,我不能这样做)
  2. 创建自定义类
  3. 这两个都在这里说明:VBA Many buttons point to the same _Click sub

    我的目标是创建一个自定义日历的单个模块,因此如果可能的话,我想避免使用自定义类。 那么 - 我可以在我的模块中实现另一种解决方案吗?

0 个答案:

没有答案