ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ctp_119

[原创] 列表法输入,提高工作效率(更新已完成)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-16 13:05 | 显示全部楼层
本帖已被收录到知识树中,索引项:数据验证
[quote]原帖由 ctp_119 于 2011-6-15 09:39 发表

重装系统好了。暂无它法。

呜呜。。。。。。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-24 07:32 | 显示全部楼层
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. If Target.Count > 1 Or Target.Row = 1 Then Exit Sub
  3. If Target.Column <> 1 And Target.Column <> 2 Then Exit Sub
  4. Dim dic As Object
  5. Dim arr As Variant
  6. Dim i As Integer
  7. Dim j As Integer
  8. Dim di As Object
  9. Dim k As Variant
  10. Set dic = CreateObject("scripting.dictionary")
  11. Set di = CreateObject("scripting.dictionary")
  12. With Sheets("sheet3")
  13. arr = .Range("a2:b" & .Cells(Rows.Count, 1).End(xlUp).Row)
  14. End With
  15. If Target.Column = 1 Then
  16. For i = 1 To UBound(arr)
  17. dic(arr(i, 1)) = ""
  18. Next i
  19. With Target.Validation
  20. .Delete
  21. .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
  22. Operator:=xlBetween, Formula1:=Join(dic.keys, ",")
  23. End With
  24. ElseIf Target.Column = 2 Then
  25. If Target.Offset(0, -1) = "" Then Exit Sub
  26. For j = 1 To UBound(arr)
  27. If arr(j, 1) = Target.Offset(0, -1) Then
  28. di(arr(j, 2)) = ""
  29. End If
  30. Next j
  31. With Target.Validation
  32. .Delete
  33. .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
  34. Operator:=xlBetween, Formula1:=Join(di.keys, ",")
  35. End With
  36. k = di.keys
  37. Target = k(0)
  38. End If
  39. End Sub
复制代码
字典有效性输入法太妙了,简洁利索,运行速度快等优点。
最新更新,,,近期正在学习字典。以前没有发现。呵呵,字典真是太好了。。。比collection强多了。。。个人认为。

[ 本帖最后由 ctp_119 于 2011-6-24 07:34 编辑 ]

列表输入法.rar

204.55 KB, 下载次数: 1480

TA的精华主题

TA的得分主题

发表于 2011-6-24 11:26 | 显示全部楼层
谢谢楼主那么用心,学习一下

TA的精华主题

TA的得分主题

发表于 2011-6-24 21:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-24 21:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-24 22:28 | 显示全部楼层
不错,整理辛苦,建议楼主把各楼层的附件上传的一楼,方便会员下载,或者建一个电梯也行

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-25 07:27 | 显示全部楼层
原帖由 佛山小老鼠 于 2011-6-24 22:28 发表
不错,整理辛苦,建议楼主把各楼层的附件上传的一楼,方便会员下载,或者建一个电梯也行

本来想编辑一楼的,可是现在编辑不了,锁住了。。。
谢谢小老鼠版主!
有时间我在整理一下,关键代码加上备注。。。

TA的精华主题

TA的得分主题

发表于 2011-6-25 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
标记下,以后学习

TA的精华主题

TA的得分主题

发表于 2011-6-27 14:44 | 显示全部楼层
建议帖子名字加个“数据有效性”之类的关键字,,这么好的帖子,我搜索不到啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-27 14:56 | 显示全部楼层
有效性可以搜到,前面有这个关键字。承蒙夸奖!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 15:58 , Processed in 0.045179 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表