ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 原创--输入提示自动补全,简码输入,首字母拼音输入

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-4-10 11:39 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:控件
本帖最后由 百度不到去谷歌 于 2014-4-10 11:40 编辑

最近很多人问输入自动提示,也写了好几个
这里用一个典型示例 有一点点vba基础的人稍加修改就可以用在自己需要的地方
也可以以此为模板,扩展其他辅助输入功能 快速输入逐步提示-首字母拼音提示示范.rar (45 KB, 下载次数: 7276)
输入提示.gif





补充内容 (2014-12-5 11:28):
后面15楼部分功能更新更好用
35楼有局部加速

补充内容 (2020-8-4 08:35):
最新升级到3.0版 窗体+类模块实现 任意多组同时使用 可在窗体文本框和控件文本框使用 操作更简单 效果更炫酷 无需添加控件http://excel880.com/blog/archives/13128

评分

15

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-6-24 15:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jimmy0766 发表于 2014-6-24 14:45
运行反应很慢。

好机器可能没有感觉
老机器的话 怕是会有点点慢
稍微优化了一下 把ado对象作为全局变量了 这样应该可以快一点 试试看 1快速输入逐步提示-首字母拼音及汉子混合输入提示 示范.rar (53.74 KB, 下载次数: 6490)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-4-10 12:51 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-4-10 14:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-4-10 14:50 | 显示全部楼层
感谢高手分享,有空拜读一下

TA的精华主题

TA的得分主题

发表于 2014-4-11 09:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Function PY(ByVal rng As Range) '首字母拼音
    Dim i%, k%, str$
    str = Replace(Replace(rng, " ", ""), " ", "")
    For i = 1 To Len(str)
        k = 1
        Do Until Mid("八嚓哒妸发旮铪讥讥咔垃妈拿哦妑七然仨他哇哇哇夕丫匝咗", k, 1) > Mid(str, i, 1)
            k = k + 1
        Loop
        str1 = str1 & Chr(64 + k)
        'PY = PY & Chr(64 + k)
    Next
    'MsgBox Chr(64 + k)
    PY = str1
    aaa = aaa + 1
End Function

这段代码能帮忙解释一下吗?
返回首字母的拼音,在工作簿了进行了测试,做了上面的调整,在本文件中结果也是正确的

但是msgbox那个注释掉了,因为调用该过程,这msgbox会运行很多次,其中aaa = aaa + 1,aaa是个公共变量就是为了记录次数的。
能否帮着解答下

另外该过程移植到其他文件返回结果有出入的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-11 09:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2014-4-11 09:33
Function PY(ByVal rng As Range) '首字母拼音
    Dim i%, k%, str$
    str = Replace(Replace(rng, "  ...

结果出入是因为模块开头比较模式没打开
  Option Compare Text
这个原理是利用预设元音查询
有一个汉字笔画的也是这个原理

TA的精华主题

TA的得分主题

发表于 2014-4-11 09:46 | 显示全部楼层
百度不到去谷歌 发表于 2014-4-11 09:40
结果出入是因为模块开头比较模式没打开
  Option Compare Text
这个原理是利用预设元音查询

另外就是运行次数的问题,msgbox返回多少次值的问题,
调用一次过程,正常应该返回一次值吧,而且该值应该是最后一个汉字对应的字母,是不是这个样子的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-11 09:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liulang0808 发表于 2014-4-11 09:46
另外就是运行次数的问题,msgbox返回多少次值的问题,
调用一次过程,正常应该返回一次值吧,而且该值应 ...

是的 返回多次是因为你在表里用了函数
重新计算的话 多次调用了该函数吧

点评

谢谢指点,你的提取首字母的拼音的思路很强悍啊,原来做过是用字库提取的,很费力  发表于 2014-4-11 09:59

TA的精华主题

TA的得分主题

发表于 2014-4-11 09:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
百度不到去谷歌 发表于 2014-4-11 09:49
是的 返回多次是因为你在表里用了函数
重新计算的话 多次调用了该函数吧

谢谢,我再研究研究

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-11 10:19 | 显示全部楼层
百度不到去谷歌 发表于 2014-4-11 09:49
是的 返回多次是因为你在表里用了函数
重新计算的话 多次调用了该函数吧

我没那么聪明 这都是伟大的百度 前人的智慧够强大 我们要学会利用
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 00:34 , Processed in 0.048439 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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