ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教关于Excel表不完整模糊输入首写字母回车后自动充填对应中文名称的问题!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-6-22 14:14 | 显示全部楼层 |阅读模式
请教关于Excel表不完整模糊输入首写字母简写回车后自动充填对应完整中文名称的问题!








尊敬的高人大侠:
您好!




非常抱歉打扰高人大侠的休息时间了,
小弟现在遇到一个
“关于Excel表不完整模糊输入首写字母简写回车后自动充填对应完整中文名称的问题”
想要请教高人大侠,
请帮帮小弟好吗?




小弟想做一份菜单点菜,
因为菜品很多,
但每次点菜也就那么几样,
每次手打敲字很是麻烦,
本来小弟想把菜单做成下拉选项那种,
点什么菜下拉去找选择就可以了,
但是无奈菜品太多,
做成这种会花眼睛,
而且也不利于以后加入新的菜品.




又思索着写一写公式来实现小弟的需求,
起初想着就利用中文然后输入中文名称的首写字母去实现,
结果不可能,
后来又想着把中文名称转成拼音,
利用拼音然后输入首写字母去找对应的完整拼音,
找遍网络探索十来种公式似乎实现不了,
网络中也有前辈在请教同类问题,
但是似乎没有答案,
并且回复说利用VBA写函数可以实现,
故小弟在此谦卑地向高人大侠请教,
望高人大侠帮帮小弟.




举例:
“香辣虾皮”对应拼音为“XiangLaXiaPi”,
不完整模糊输入首写字母简写“XLX”,
还没有输入完“XLXP”中的“P”时回车,
就自动充填对应完整中文名称的“香辣虾皮”了.




当遇到生字时:
“花果荠菜”对应拼音为“HuaGuo荠Cai”,
不完整模糊输入首写字母简写“HG        ”,
由于后面是生字“荠”,也按回车,
也能自动充填对应完整中文名称的“花果荠菜”.




意思就是这样,
希望小弟的举例表达能够让高人大侠明白小弟的需求.




请一定一定要帮帮小弟啊!
上帝保佑!




2018年06月22日 星期五 笔














请教关于Excel表不完整模糊输入首写字母回车后自动充填对应中文名称的问题!.rar

20.03 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2018-6-22 18:43 | 显示全部楼层


原理是在工作表中添加一个textbox和listbox(附件中已做好):

QQ图片20180622184008.png

拼音自行写入公式,如下图(首字母和全拼都保留):

QQ图片20180622183811.png

输入汉字或首字母或全拼都可以查到。在遇到不认识的字时,用星号*代替该字母或汉字的位置。

shuru.gif

关于Excel表不完整模糊输入首写字母简写回车后自动充填对应完整中文名称的问题 有拼音版.zip (45.66 KB, 下载次数: 17)


TA的精华主题

TA的得分主题

发表于 2018-6-22 22:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我也是VBA新手,刚好最近完成了一个类似的案例,有现成的代码,因此帮您改了下一,您看是否合适。

03.rar

21.38 KB, 下载次数: 23

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-23 03:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ivccav 发表于 2018-6-22 18:43
原理是在工作表中添加一个textbox和listbox(附件中已做好):




非常非常地感谢高人大侠的帮助,
当小弟下载文件后看到之前困惑无奈的问题
在高人大侠的细致无微指导下
得到了完美解答,
顿然间,
眼泪涌出了眼眶,
心情无比地澎湃,
说真的,
不浮夸,
不骗人.


高人大侠用了好几个模块写出了好几个完美的VBA代码,
其中还让高人大侠遇到了个小问题感到头痛
实在是令小弟十分的钦佩又万分的为高人大侠感到抱歉,
给高人大侠带来了不方便之处,
还请高人大侠海涵啊.


高人大侠的那个拼音模块真的很是厉害啊,
生字都能转成拼音,
小弟之前找的那个居然还有生字,
都不敢用,
不过有个小疑惑想请教高人大侠,
公式中如何一气呵成把拼音首字母大写一下呢?
这样子看着能突出一些,
不过没关系,
小弟先研究研究探索探索一番啊,
什么都不先去做只想着要现成的结果伸手党应该感到羞耻才对.


由于牵扯到排版的问题,
当小弟新增一列或合并居中或想换单元格时,
在高人大侠的VBA代码中不能举一反三,
实在是给高人大侠丢脸啊```
不敢无颜面对高人大侠了.
可否恳请高人大侠再指教一二?
VBA代码中是哪一条起到指定哪一列实现输入充填中文呢?


万分地感激高人大侠的帮助,
小弟会好好善用高人大侠的成果,
为高人大侠争光添彩,
发扬光大!


打扰高人大侠了!


2018年06月23日 星期六 留



TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-23 03:18 | 显示全部楼层
vitrel 发表于 2018-6-22 22:46
我也是VBA新手,刚好最近完成了一个类似的案例,有现成的代码,因此帮您改了下一,您看是否合适。






非常非常地感谢高人大侠的帮助!


高人大侠太过谦虚了,
能写出VBA代码已经是件很不容易的事情了,
你瞧小弟我,
一句都写不出,
还只能在网络中搜索前辈们写出来现成的再复制粘贴进去用,
多丢人啊```


所以高人大侠不用谦虚.
小弟看了高人大侠的文件,
对小弟的菜单模版进行了重新排版,
给高人大侠带来了不便,
对不起高人大侠了啊!
小弟会努力改进的.


还有件事情还请高人大侠多多海涵,
小弟下载高人大侠的文件不能使用,
打开后模糊输入再回车后或者是就是点一下单元格就弹出:
运行时错误'1004';
不能取得类 Range 的 CurrentRegion 属性
让我选择
继续(置灰,不能点击),
结束(E)
调试(D)
帮助(H)


是不是小弟的程序有问题所致?


深夜打扰高人大侠休息了,
非常的抱歉!


2018年06月23日 星期六 留

TA的精华主题

TA的得分主题

发表于 2018-6-23 07:59 | 显示全部楼层
idiocy 发表于 2018-6-23 03:18
非常非常地感谢高人大侠的帮助!


关于您提出的“错误1004”的问题,我基于以下2点考虑:
1、Range 的 CurrentRegion 属性是很普遍的用法,基本上不存在语法上的错误;
2、我提供的文档(03.xls)在我的2台计算机(Excel2013)上运行一切正常。
综上考虑,出现“错误1004”的原因,很可能是Excel版本差异问题。

解决方法:
1、我已经重新改写了代码,用Resize替换了CurrentRegion,您看是否还会出错。2、如果还是不行,估计您的Excel版本太旧了(应该不会是2003版吧),建议升级一下。

如有其它问题,欢迎提出。
得到您的意见反馈,是我学习的途径之一,谢谢!

04.rar

49.44 KB, 下载次数: 19

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-23 08:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ivccav 发表于 2018-6-22 18:43
原理是在工作表中添加一个textbox和listbox(附件中已做好):




非常非常的抱歉,
请原谅小弟的愚昧,
今天早上小弟又继续研究了高人大侠的VBA代码,
发现原来小弟昨天想排版请教的关于输入显示区域的问题,
就在代码的第一句那里:
Const RangeAddress = "C2:C65536" '提示显示区域
实在是万分地不应该啊,
对不起高人大侠啊!


嗯```
小弟可以再请教一个问题吗?
已经选择好的菜品,
似乎不能删除回到什么都没有输入的那样子是吗?


2018年06月23日 星期六 留

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-23 08:33 | 显示全部楼层
vitrel 发表于 2018-6-23 07:59
关于您提出的“错误1004”的问题,我基于以下2点考虑:
1、Range 的 CurrentRegion 属性是很普遍的用 ...




非常非常地感谢高人大侠的细心指导,
小弟使用的是“Microsoft Office 2010”,
没有高人大侠使用的那么高版本,
在经过高人大侠的再次修改VBA代码后,
小弟可以正常操作了.


高人大侠实在是太厉害了,
可以完全不借用先把中文转拼音这一步,
直接就靠中文名称的菜品名称就能完全实现,
佩服啊```
羡慕啊```


小弟要加倍努力才行啊,
达到高人大侠这样的高水平太遥远了```


小弟先去研究研究高人大侠的VBA代码啊,
揣摩揣摩消化消化```


再次地感谢高人大侠的细心帮助!!!


2018年06月23日 星期六 留

TA的精华主题

TA的得分主题

发表于 2018-6-23 08:50 | 显示全部楼层

嗯,您说得没错。

您制作文档的要求,网上归纳为“模糊查找”或“快速录入”。
我查看过多位前人高手提供的程序参考,大致思路都差不多。
就是在工作表中加入一个TextBox和一个ListBox协同工作实现的。
以这种方法实现的“快速录入”,不能回避的一个问题就是:单元格内容不能(简单地)直接删除。
网上高手们所提供的方案,可能是出于抛砖引玉的目的,代码较简单。
代码简单的好处是方便移植,至于细节方面就需要各人自行完善,
因此网上的实例普遍都没有解决“单元格内容不能删除的问题”,
但说实话,其实也不算什么大问题,下面有解决方法。

对于只需要在一个单元格进行快速录入的案例,
我已经可以做到单元格内容能(简单地)直接删除。
但为此要增加比较多且复杂的代码,还会因此而引伸出其它新的问题。
至于像你的实例,需要在一列(多于一个单元格)实现快速录入,
我估计是可以用增加VBA代码的方法解决的,但代码会更为复杂。

给您两个解决此问题的建议:
方法一(比较简单):因为我的代码中有这一句“Target.CountLarge = 1”,
    因此你只要一次选择多过一个单元格的话,TextBox和ListBox就不会出现,
    这样就能很容易删除内容了。
    举例,你想删除C10,那么你用鼠标选择C10:D10,再按键盘的Del键就OK了。
方法二:增加一个按钮,用VBA代码删除单元格中的内容,但这个不建议。

另外,听你的意思,你之前提出文件3出错是您自己的问题,现在已经解决了,但我还是建议您使用文件4,文件4中的“提取汉字首字母”代码我作了修改,比文档3更完善。文档3中,你输入“rs”后是无法出现“xx肉丝”给你选择的,我也是今早才发现,后来在文件4中改进了。

TA的精华主题

TA的得分主题

发表于 2018-6-23 09:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
idiocy 发表于 2018-6-23 08:20
非常非常的抱歉,
请原谅小弟的愚昧,
今天早上小弟又继续研究了高人大侠的VBA代码,


这个获取拼音的方法不是我原创,我只是觉得好,就保留了。该方法需要安装有微软拼音输入法2.0以上,一般电脑上都有(如果没有,我提供了一个下链接在附件中了)。改为首字母大写,只要加一句话就行了:
QQ图片20180623094222.png

QQ图片20180623094256.png

你要删除已经选好的菜品,只要你选中2个以上单元格(如选择C10,D10),就会隐藏提示功能,然后就可以删除了。

2.gif

当然还可以设置快捷键关闭提示功能,关闭了提示功能,就可以随意编辑了。我设置了Ctrl+E的快捷键。你可以自己设置其他键,在工具-宏-选项中设置。

1.gif

智能提示功能.zip (53.71 KB, 下载次数: 12)




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-28 17:01 , Processed in 0.068606 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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