Excel精英培训网

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

[已解决]大量人员信息记录在sheet中,如何建立检索sheet将正行人员信息重新排列显示

[复制链接]
发表于 2015-12-18 14:24 | 显示全部楼层 |阅读模式
公司有大量的员工信息记录在excel中,每个人一行信息,有若干列的属性。

因为每天需要去检索不同人,并将该人的整行信息重新排版后展现出来,希望能通过宏建立一个检索页直接搜索展示并将结果重新排列....

搜索条件有1-3个属性,可单一搜索也需要多条件关联搜索,然后将搜索到该人整行的信息重新排列展示出来...

网上找到的一些有点类似的需求都试了下,发下他们都只是部分的功能,并没有全的,,,自己又不会vba,只能跑来求教各位大能了~

对应的例子和说明已经附在附件的表格中了,多谢大家!

求助,谢谢大家.zip (9.05 KB, 下载次数: 3)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2015-12-18 15:28 | 显示全部楼层
回复

使用道具 举报

发表于 2015-12-18 15:29 | 显示全部楼层
做了个简易版的,请测试。
  1. Dim brr(), n, p    '保存搜索结果、符合条件的记录数,当前显示第几条记录
  2. Sub 检索()
  3.     xm = [b4]: cs = [b5]: xb = [b6] '姓名、城市、性别
  4.     arr = Sheets(1).[a1].CurrentRegion
  5.     ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  6.     n = 0
  7.     For i = 2 To UBound(arr)
  8.         xm1 = arr(i, 3): xb1 = arr(i, 4): cs1 = arr(i, 6)
  9.         If (xm = xm1 Or xm = "") And (xb = xb1 Or xb = "") And (cs = cs1 Or cs = "") Then
  10.             n = n + 1
  11.             For j = 1 To UBound(arr, 2)
  12.                 brr(n, j) = arr(i, j)
  13.             Next
  14.         End If
  15.     Next
  16.     If n > 0 Then
  17.         Range("d8,f8,d9,f9,h9,j9,d10,d12,d14,d16,d18") = ""
  18.         Call 显示(1)    '显示第一条记录
  19.         p = 1
  20.     Else
  21.         MsgBox "无符合条件的记录"
  22.     End If
  23. End Sub

  24. Sub 显示(k)  '搜索结果中第k条记录显示出来
  25.     arr = Array("d8", "f8", "d9", "f9", "h9", "j9", "d10", "d12", "d14", "d16", "d18")
  26.     For i = 0 To UBound(arr)
  27.         Range(arr(i)) = brr(k, i + 1)
  28.     Next
  29. End Sub

  30. Sub 下一名()
  31.     p = p + 1
  32.     If p <= n Then Call 显示(p) Else p = p - 1: MsgBox "已到最后一条记录"
  33. End Sub

  34. Sub 上一名()
  35.     p = p - 1
  36.     If p > 0 Then Call 显示(p) Else p = p + 1: MsgBox "已到第一条记录"
  37. End Sub
复制代码

求助.rar

22.06 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2015-12-20 14:54 | 显示全部楼层
grf1973 发表于 2015-12-18 15:29
做了个简易版的,请测试。

不好意思,回复晚了。

前面收到这个简单版,拿回去自己修改尝试了很久,一直不成功而且一旦运行就总会调出你给我的表格。

现在将对应的表格和内容完整附上,内容上有增加,麻烦你再看下。

另外,如果要把你回复的检索版copy到我自己的数据表格中去的话,是不是只要复制对应的vba那段程序即可?

已附上完整附件。

求助-2.zip (47.69 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2015-12-21 14:37 | 显示全部楼层
代码要根据实际表格情况小改一下的。如果所有数据源表和当前显示表都没有改动的话,可复制VBA套用。

求助-2.rar

52.8 KB, 下载次数: 7

回复

使用道具 举报

 楼主| 发表于 2015-12-21 19:52 | 显示全部楼层
grf1973 发表于 2015-12-21 14:37
代码要根据实际表格情况小改一下的。如果所有数据源表和当前显示表都没有改动的话,可复制VBA套用。

试了下,如果搜索城市,显示出来的结果并不正确,没搜索的城市的信息也会显示出来。
回复

使用道具 举报

 楼主| 发表于 2015-12-21 19:57 | 显示全部楼层
grf1973 发表于 2015-12-21 14:37
代码要根据实际表格情况小改一下的。如果所有数据源表和当前显示表都没有改动的话,可复制VBA套用。

单独搜索城市或者多条件搜索城市都不行。
回复

使用道具 举报

发表于 2015-12-22 09:19 | 显示全部楼层
请看附件。

求助-2.rar

52.56 KB, 下载次数: 6

回复

使用道具 举报

 楼主| 发表于 2015-12-22 18:41 | 显示全部楼层
grf1973 发表于 2015-12-22 09:19
请看附件。

实在不好意思。

这个搜索的关键词,在匹配上可以做到包含吗?现在只能搜输入的关键词并且得全匹配的。就是我搜城市上海,如果他的地址中写了上海、北京就无法被搜索到了。。。我搜职位运营,如果他写的是运营总监也无法被搜索到了。。。

拜托了,谢谢!



回复

使用道具 举报

发表于 2015-12-22 19:08 | 显示全部楼层    本楼为最佳答案   
可以的。

求助-2.rar

52.42 KB, 下载次数: 14

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 09:13 , Processed in 0.310034 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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