VBA动态列表框实例

作者: 猛犸象和剑齿虎 | 来源:发表于2018-10-07 18:24 被阅读2次
效果图 列表数据

图一<效果图>功能介绍,采用动态序列,输入姓名首字,按回车键,该首字对应的姓名序列就会出现在列表内,单击列表的值,数据输入单元格内。

学习是件痛并快乐的事儿。痛的是在过程中,反复去看去读也无法理解产生的焦虑与挫败感,快乐的是理解的那一刻,从内心升腾出的喜悦,过程有多难受,结果就有多喜悦。

上篇文我制定了月度内的三个计划,第一个是做一个实用的下拉菜单。excel自带的数据有效性序列,在一些情况下不是特别的实用,例如图二<列表数据>,人名过百,其实也没什么,当点击序列的时候很壮观。

这个例子虽然简单,但我在实际运用过程中,也碰到不少问题。

第一个问题,起初我用的是组合框,和序列差不多的效果,把组合框放在单元格内,然而组合框覆盖单元格,而且组合框自带记忆功能,上一个人名会自然覆盖下一个想要输入的单元格,于是把组合框放在单元格外,这样才能确定是否用鼠标单击过了组合框的值。

然而组合框每次都要点击下拉的三角图标,于是我改为列表框。

第二个问题,就是selectchange事件本身,当单元格发生改变时才能触发,用过excel表格的人都知道,输入单元格的值只有按方向键或者enter键,单元格的值才能输入,然而按方向键或回车键,活动的单元格就会发生改变,变成不想输入值单元格。

怎样按enter键,单元格不发生改变?其实想实现的功能很简单,在序列区域按enter键,单元格不发生切换,在其他单元格就可以。于是我录制了宏,也查了很多东西,但是看不懂,只好采用一种投机取巧的方式,在自定义功能区,高级选项卡里,把enter键上下左右移动的功能关闭。

代码如下,初学vba,欢迎大家批评指正。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)  ’seleciton change 事件

Dim rng As Range                                          

Application.ScreenUpdating = False

Me.ListBox1.Clear

On Error Resume Next

If Target.Column = 51 Or _

 Target.Column = 53 Or _

 Target.Column = 55 Or _

 Target.Column = 57 Or _

 Target.Column = 59 Then

 With Me.ListBox1

   .Top = Target.Top

   .Left = Target.Offset(0, 1).Left

   .Width = Target.Width

   .Height = Target.Height * 5

  For Each rng In Worksheets("效益工资").Range("a2", Worksheets("效益工资").[a63356].End(xlUp))

   If Left(Target.Value, 1) = Left(rng.Value, 1) Then  

     Me.ListBox1.AddItem rng.Value

   End If

 Next

 End With

End If

Application.ScreenUpdating = ture

End Sub


Private Sub ListBox1_Click()`单击事件

Dim xlrng

ActiveCell = Me.ListBox1.Text

End Sub

相关文章

  • VBA动态列表框实例

    图一<效果图>功能介绍,采用动态序列,输入姓名首字,按回车键,该首字对应的姓名序列就会出现在列表内,单击列表的值,...

  • excel VBA

    零. excel 2016 开启VBA “Excel选项”对话框,单击“自定义功能区”选项, 在右侧的面板的列表框...

  • 【Excel】利用Excel的切片器制作动态图表

    昨天教了大家如何利用列表框控件来根据选择制作动态图表,详细请看下面: 今天教的依然是这个,只是换个列表框(Acti...

  • 用列表框制作WPS动态图表

    原文:用列表框制作WPS动态图表[https://mp.weixin.qq.com/s?__biz=MzAwNTI...

  • 使用__slots__实现动态绑定

    Python作为动态语言,可以实现动态绑定属性和实例方法等。 动态绑定属性 动态绑定实例方法 给一个实例绑定的方法...

  • EXCEL | VBA实例操作

    将工作簿中的所有工作表单独保存,原表仍然存在 1.原工作簿: 2.效果显示: 3.VBA代码: 4.知识点:thi...

  • EXCEL-index函数

    一.列表框动态图表(INDEX函数) · INDEX函数:返回表格区域中的值,或者值的引用· INDEX(arra...

  • EXCEL 2007 VBA入门与提高实例大全 钟声,李远祥等编

    下载地址:EXCEL 2007 VBA入门与提高实例大全 钟声,李远祥等编著[www.rejoiceblog.co...

  • Python动态绑定属性方法

    python是动态语言,可以为实例动态绑定属性、方法,也可以为类动态绑定方法。即在用到的时候定义。为实例动态绑定的...

  • excel vba 实例(11)- 拆分单元格并自动填充

    之前介绍过快速合并相同单元格的实例,传送门在这里:Excel vba 实例(5) - 快速合并n多个相同值的单元格...

网友评论

    本文标题:VBA动态列表框实例

    本文链接:https://www.haomeiwen.com/subject/eimlaftx.html