您可以创建一个事件接收器类,它将包含特定类型的所有控件的事件处理代码。例如,创建一个名为的类TextBoxEventHandler,如下所示:Private WithEvents m_oTextBox as TextBoxPublic Property Set TextBox(ByVal oTextBox as TextBox) Set m_oTextBox = oTextBoxEnd PropertyPrivate Sub m_oTextBox_Change() ' Do somethingEnd Sub现在,您需要为表单上的相应类型的每个控件创建并连接该类的实例:Private m_oCollectionOfEventHandlers As CollectionPrivate Sub UserForm_Initialise() Set m_oCollectionOfEventHandlers = New Collection Dim oControl As Control For Each oControl In Me.Controls If TypeName(oControl) = "TextBox" Then Dim oEventHandler As TextBoxEventHandler Set oEventHandler = New TextBoxEventHandler Set oEventHandler.TextBox = oControl m_oCollectionOfEventHandlers.Add oEventHandler End If Next oControlEnd Sub请注意,您需要将事件处理程序实例添加到集合的原因只是为了确保它们仍然被引用,因此在您完成它们之前不会被垃圾收集器丢弃。显然,这种技术可以扩展到处理其他类型的控制。您可以为每种类型分别设置事件处理程序类,也可以为需要处理的每种控件类型使用一个具有成员变量(以及关联的属性和事件处理程序)的类。