ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 输入逐步提示信息增强

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-14 22:10 | 显示全部楼层 |阅读模式
看了[技巧167]输入时逐步提示信息,也参考了其他同学的实例,发现功能可以不断扩充,下面是本人增强后的实例,供大家参考。
1、录入表中可实现多字段输入逐步提示信息,本例用了两个字段,同学们可根据自已需要再增加;
2、实现文本录入后自动带出代码;
3、解决下拉列表数据过多速度缓慢问题;
4、点击文本框后首先显示出已录入内容,鼠标点击后自动清掉;
5、更正了输入内容未找到匹配信息时的报错。
具体大家下载后仔细看吧!
第一次发帖,希望能对大家有所帮助,同时也希望大家互相交流。
输入时逐步提示信息.rar (126.04 KB, 下载次数: 5595)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-14 22:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

如果大家有什么更好的想法可以在这里交流

TA的精华主题

TA的得分主题

发表于 2011-1-15 00:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-16 02:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-16 04:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
additem 改成用 LIST ,遍历单元格改成数组, 还可以加快显示下拉框速度。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-16 16:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 AVEL 于 2011-1-16 04:49 发表
additem 改成用 LIST ,遍历单元格改成数组, 还可以加快显示下拉框速度。

谢谢提示,那么如何更改,请赐教!

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-16 16:28 | 显示全部楼层
非洲难民,您好!
谢谢你的提醒,我将下面的代码
               For i = 2 To 13 '如果选择项大多,为提高运行速度,只取前13条记录
                   .AddItem Sheet3.Cells(i, 4).Value
                Next
改为如下代码:
                 .List = Sheet3.Range("D2:D500").Value
速度大提高。
这样改是否跟您说的一样?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-16 21:17 | 显示全部楼层

增加按选择频次排序功能

在其他帖子里看到有些同学提到最好通实现按选择频次进行排序功能,也就是说选择次数多的选项排在前面,仔细想了下,还是能实现的,具体修改了以下代码就能实现。

Private Sub ListBox2_DblClic
k(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    ActiveCell.Value = Right(ListBox2.Value, Len(ListBox2.Value) - InStr(1, ListBox2.Value, "-"))
    Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = Left(ListBox2.Value, InStr(1, ListBox2.Value, "-") - 1)
'每选择一次列表选项后,被选择的列表项选择频次加1,并按选择频次进行排序
    With Sheet3
        .Cells(Application.Match(ListBox2.Value, .Range("D:D"), 0), 6).Value = .Cells(Application.Match(ListBox2.Value, .Range("D:D"), 0), 6).Value + 1
'        .Range("A1").Select
        .Range("A1:G" & .Range("D65536").End(xlUp).Row).Sort Key1:=.Range("F2"), Order1:=xlDescending, Key2:= _
        .Range("G2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
        MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
    End With
    Me.TextBox2 = ""
    Me.ListBox2.Visible = False
    Me.TextBox2.Visible = False
End Sub

供大家参考!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-1-16 22:00 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-17 18:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提两个相关问题:1、应该是么模糊查找-如输入北京,则出现北京下面的相关事项
2、如数据库中没有,按照目标格式,也能输入进去保存并添加到数据表2中的数据库,(输入数据库中没有的词条,不能保存,要不就提示错误)
3、如果更改数据位置(行列或者其他列也想提示输入),如何更改代码?请表示清楚,方便我们不懂vba的人,如果是高手自然不用看楼主的代码了。

以上是我的建议,希望楼主能采纳,谢谢你将自己的成果展示给大家。
ps:希望楼主有改进后,将改好的附件上传,方便大家~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-8 03:35 , Processed in 0.026224 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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