Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2631|回复: 10

[已解决]使用窗体查询问题,解决重名,有相关VBA程序,由复杂改简单,求高手出手相助

[复制链接]
发表于 2013-4-10 20:59 | 显示全部楼层 |阅读模式
我原来的职工信息查询使用职工姓名查询,但是当职工有重名时,只能查询一个职工的信息。现在,我想再增加一个使用职工编号查询的窗体,专门针对重名部分职工的信息查询。有VBA编码,请高手帮助修改。看看附件吧: 使用编号查询信息.zip (35.24 KB, 下载次数: 41)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-10 21:20 | 显示全部楼层
老窗口中最后一位不能为0 的解决方法:
  1.     For Each myrg In Sheets("信息库").Range("B2:B" & CStr(lastrow))
  2.         If myrg = TextBox1.Text Then ListBox1.AddItem myrg.Offset(0, -1).Value
  3.     Next
复制代码
回复

使用道具 举报

发表于 2013-4-10 21:27 | 显示全部楼层    本楼为最佳答案   
新窗体
  1. Private Sub TextBox1_Change()
  2.     Dim rg As Range
  3.     On Error Resume Next
  4.     With Worksheets("信息库")
  5.         Set rg = .Range("c:c").Find(what:=TextBox1.Value, lookat:=xlWhole)
  6.         If Not rg Is Nothing Then
  7.             Laxm.Caption = rg.Offset(, -2)
  8.             Exit Sub
  9.         Else
  10.             Laxm.Caption = ""
  11.         End If
  12.     End With
  13. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-4-10 23:00 | 显示全部楼层
hwc2ycy 发表于 2013-4-10 21:27
新窗体

hwc2ycy:
    您的程序经过测试,无论是在单机版还是在“共享工作薄”的联机版中,都是非常顺畅。其实我要用到“共享工作薄”上,我们都知道,“共享工作薄” 时VBA代码会出现莫名其妙的运行“错误”,但这个程序没有出现异常。谢谢您了!感谢您无私的帮助!感谢您辛勤的付出!向您学习!祝您晚安!好梦
   
回复

使用道具 举报

发表于 2013-4-10 23:15 | 显示全部楼层
liwenhong 发表于 2013-4-10 23:00
hwc2ycy:
    您的程序经过测试,无论是在单机版还是在“共享工作薄”的联机版中,都是非常顺畅。其实我 ...

没有异常,但结果呢?
回复

使用道具 举报

 楼主| 发表于 2013-4-11 10:57 | 显示全部楼层
hwc2ycy 发表于 2013-4-10 23:15
没有异常,但结果呢?

您编写的这个程序,在工作薄共享的情况下也运行顺畅,再次对您表示感谢!
回复

使用道具 举报

 楼主| 发表于 2013-4-11 15:03 | 显示全部楼层
hwc2ycy 发表于 2013-4-10 23:15
没有异常,但结果呢?

今天中午试着将“使用职工编号查询”新窗体中的职工编号和姓名分别显示在“卡片正面”的B3和L3单元格中。但没有弄成,请您再帮我一次吧,我太菜了,还是写好程序发来吧,拜托了!
回复

使用道具 举报

 楼主| 发表于 2013-4-11 17:44 | 显示全部楼层
hwc2ycy 发表于 2013-4-10 23:15
没有异常,但结果呢?

请在您原编写的程序中加两个语句,将窗体中的“职工编号”和“姓名”分别显示在“卡片正面”工作表的B3和L3单元格中。谢谢您了!
回复

使用道具 举报

发表于 2013-4-11 18:24 | 显示全部楼层
  1. Private Sub TextBox1_Change()
  2.     Dim rg As Range
  3.     On Error Resume Next
  4.     With Worksheets("信息库")
  5.         Set rg = .Range("c:c").Find(what:=TextBox1.Value, lookat:=xlWhole)
  6.         If Not rg Is Nothing Then
  7.             Laxm.Caption = rg.Offset(, -2)
  8.             [b3] = rg.Offset(, -2).Value
  9.             [l3] = Me.TextBox1.Text
  10.             
  11.             Exit Sub
  12.         Else
  13.             Laxm.Caption = ""
  14.             [b3] = ""
  15.             [l3] = ""
  16.         End If
  17.     End With
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-4-11 23:04 | 显示全部楼层
hwc2ycy 发表于 2013-4-11 18:24

今晚我使用您新编的程序放到我实际应用的文件中,当在窗体中输入数字时,出现死机现象,我试了好多次都是这样,但当我去把这个文件压缩准备发给您时,又莫名奇妙的运行正常了。今天下午就是出现了这种情况,我没有做任何修改,一会无法运行,一会运行神速。不知道到底是我动了那里吗?今晚和下午不是同一台电脑,不应该是电脑的问题吧!我还是将出问题的文件发给您吧!附件: 职工查询.zip (223.61 KB, 下载次数: 27)
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 07:32 , Processed in 0.478409 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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