VBA高级应用30例在列表框内及列表框间实现数据拖动

VBA语言専攻 2024-05-27 19:15:45

《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三十个专题,本讲的内容是:VBA高级应用30例应用2实现在列表框内及列表框间实现数据拖动:类模块代码的实现过程

【分享成果,随喜正能量】 人只有实实在在的有所成长,并且真正感受到了这些成长带给自己的益处,才会真正去感恩带给自己成长的各种机缘,才会发自内心地说:一切都是最好的安排,才能把负面的事物,做出正向的解读。。

应用2 在列表框内及列表框间实现数据拖动2 类模块代码的实现过程

在类模块中我们要完成各种类对象的属性设置及读取,事件的响应等等。我给大家一一讲解:

1)各种变量的设置,在下面的各个代码中,进行各个参数的设置,有鼠标拖放确定的项及列表框的变量,左键的设置,以及事件响应的列表框对象,是否允许控件拖动的变量及鼠标定位的设置:

'用于在鼠标拖放时确定的项

Private mlListItemCount As Long

Private mdListItemSize As Double

'我们从中拖动项目的列表框

Private mobjFromList As MSForms.ListBox

'左键设置

Private Const lLEFTMOUSEBUTTON As Long = 1

Private WithEvents moListBox1 As MSForms.ListBox

Private WithEvents moListBox2 As MSForms.ListBox

'这两项决定是否允许在控件内拖动:

Private mbDragWithin1 As Boolean

Private mbDragWithin2 As Boolean

Private mXStart As Single

Private mYStart As Single

代码的截图:

2)下面代码对列表框ListBox1的属性进行读写设置,在属性写的设置过程中,我们模拟用了40个项目填充列表框,然后删除,这个过程中我们会获得参数 mdListItemSize参数的初始值,也提供给大家一个捕获鼠标位置的可选方案,代码如下:

[待续]

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

0 阅读:4