这部分我们要完成窗体及其模块的构建,这个构建过程中我们要完成窗体的初始化及类的实例化。1) 对于是否允许列表框内移动的设置,这是通过DragWithin1,和DragWithin2参数的设置来完成的,这两个参数的值通过两个CheckBox的点击实现,代码如下:Private Sub CheckBox1_Click() mcDragDrop.DragWithin1 = Me.CheckBox1.ValueEnd Sub Private Sub CheckBox2_Click() mcDragDrop.DragWithin2 = Me.CheckBox2.ValueEnd Sub 代码的截图: 2)窗体的初始化及实例化类。在窗体的初始化过程中我们要完成列表框的初始化赋值及类的实例化过程。我们看下面的代码。 '窗体的初始化Private Sub UserForm_Initialize() Dim i As Long '向列表框中添加数据 With ThisWorkbook.Sheets("sheet1") For i = 1 To Int(.Range("a1").End(xlDown).Row 2) Me.ListBox1.AddItem "Item " & .Range("a" & i) Next For i = Int(.Range("a1").End(xlDown).Row 2) + 1 To .Range("a1").End(xlDown).Row Me.ListBox2.AddItem "Item " & .Range("a" & i) Next End With '实例化类 Set mcDragDrop = New clsDragDrop With mcDragDrop '类对象列表框与窗体列表框关联 Set mcDragDrop.ListBox1 = Me.ListBox1 Set mcDragDrop.ListBox2 = Me.ListBox2 End With '在两个列表框中启用拖放 Me.CheckBox1.Value = True Me.CheckBox2.Value = True '列表框中允许多选 Me.ListBox1.MultiSelect = fmMultiSelectMulti Me.ListBox2.MultiSelect = fmMultiSelectMultiEnd Sub 代码的截图: [待续] 我20多年的VBA实践经验,全部浓缩在下面的各个教程中: 【分享成果,随喜正能量】 至长反短,至短反长。遍地是黄金,缺少有心人. 叶自根生,相自心生。傲不可长,欲不可纵. 江山易改,本性难移。