如何在VBA中动态设置窗体控件的事件处理程序?
这就是我到目前为止所拥有的,从我所收集到的其他人是如何做到这一点的如何在VBA中动态设置窗体控件的事件处理程序?,vba,excel,Vba,Excel,这就是我到目前为止所拥有的,从我所收集到的其他人是如何做到这一点的 Set iComboBoxes = New Collection 'Cycling through all controls and gathering all comboboxes For Each CTRL In UserForm1.Controls If TypeName(CTRL) = "ComboBox" Then iComboBoxes.Add CTRL 'Setting on
Set iComboBoxes = New Collection
'Cycling through all controls and gathering all comboboxes
For Each CTRL In UserForm1.Controls
If TypeName(CTRL) = "ComboBox" Then
iComboBoxes.Add CTRL
'Setting onmousedown event handler
CTRL.OnMouseDown = "=AllComboBoxes_MouseDown(" & CTRL.Name & ")"
End If
Next CTRL
我在设置OnMouseDown事件处理程序的行中收到一个错误,表示对象不支持此属性或方法。我见过其他人这样做,所以我一定错过了什么。你在哪里见过其他人这样做的?在Access中?@Rory是的,据我所知,根据文档,该属性在Excel中是相同的。我看不出有什么不同。不同的是那不起作用!您需要使用自定义类和
with events
变量。这里(和其他地方)有许多例子。可能重复