ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 请教如何实现输入数字或字母都能够查询?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-1 13:37 | 显示全部楼层 |阅读模式
各位师傅好!
  请教如何实现输入数字也能查询出结果?(目前输入字母查询才有结果)
  这是论坛里一个在A列输入拼音字母进行查询人名的帖子,我也出现了原帖中说的输入tc只出现唐从礼而不出现涂彩龙的情况。后来发现,将模块1中的“嚓”字改成“擦”字,输入tc则唐从礼和涂彩龙都能够出现。
  我要请教的问题是:我在名册工作表的人名前面随意加上了一些数字,但是输入数字却查询不到人名,怎样修改代码才能实现输入数字也能查询出相应的人名?就象现有的输入字母查询一样,让字母能查数字也能查。
  谢谢!


简化输入1.rar (16.43 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2017-7-1 15:39 | 显示全部楼层
1、原取拼音函数需要更正并优化。

2、TextBox1_Change过程需要忽略不必要的条件。

简化输入1.rar (24.8 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2017-7-1 15:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-1 15:48 | 显示全部楼层
cbtaja 发表于 2017-7-1 15:39
1、原取拼音函数需要更正并优化。

2、TextBox1_Change过程需要忽略不必要的条件。

谢谢大侠的指点和帮助!这样录入数据的时候就方便多了

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-1 17:03 | 显示全部楼层
麻烦再帮忙看看,附件稍有变化。
二楼cbtaja师傅帮做的增加了一个辅助列,请问辅助列的公式是要手动往下拖的还是由VBA自动生成的?

简化输入2.rar (24.99 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

发表于 2017-7-1 19:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kezhiye 发表于 2017-7-1 17:03
麻烦再帮忙看看,附件稍有变化。
二楼cbtaja师傅帮做的增加了一个辅助列,请问辅助列的公式是要手动往下拖 ...

修正并优化代码:
  1. Private Sub TextBox1_Change()
  2.     Dim str$, i As Byte, j As Byte, k As Byte
  3.     str = TextBox1
  4.     If str = " " Or str = " " Then
  5.         TextBox1.Visible = False
  6.         ListBox1.Visible = False
  7.         Exit Sub
  8.     End If
  9.     ListBox1.Clear
  10.     arr = Sheets("名册").Range("A1").CurrentRegion
  11.     For i = 2 To UBound(arr)
  12.         lstitem = arr(i, 1) & " " & arr(i, 2)
  13.         If PY(lstitem) Like UCase("*" & str & "*") Then ListBox1.AddItem lstitem
  14.     Next
  15. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-3 22:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cbtaja 发表于 2017-7-1 19:22
修正并优化代码:

cbtaja师傅您好!
非常感谢!
你这优化后的代码效率大大提高了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-4 17:52 | 显示全部楼层
cbtaja 发表于 2017-7-1 19:22
修正并优化代码:

cbtaja师傅您好!
又要麻烦您再次帮忙:下午测试发现,当这个UBound(arr)的值超过255就出现溢出的提示(254正常),停留在For i = 2 To UBound(arr)这一句的底色变黄。请教这个有办法解决吗?我目前的实例名册表已经有七百多行了。谢谢

TA的精华主题

TA的得分主题

发表于 2017-7-4 18:18 | 显示全部楼层
本帖最后由 cbtaja 于 2017-7-4 18:22 编辑

第2 行改为:
Dim str$, i&, lstitem$

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-7-4 18:46 | 显示全部楼层
cbtaja 发表于 2017-7-4 18:18
第2 行改为:
Dim str$, i&, lstitem$

改成这个就不提示了
师傅真厉害!VBA真神奇!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 05:25 , Processed in 0.046438 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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