Excel精英培训网

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

[已解决]关键词查询

[复制链接]
发表于 2014-11-20 23:15 | 显示全部楼层 |阅读模式
123.jpg
关键词查询.rar (17.67 KB, 下载次数: 9)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-11-21 04:46 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr(1 To 20000, 1 To 7), i%, j&, s&, k%
  3. nd = [f4]: gjc = [h4]
  4. n = ActiveSheet.Index + 1
  5. For i = n To n + 2
  6.     arr = Sheets(i).UsedRange
  7.     If InStr(arr(1, 1), nd) Then
  8.         For j = 4 To UBound(arr)
  9.             If arr(j, 4) Like "*" & gjc & "*" Then
  10.                 s = s + 1
  11.                 For k = 2 To UBound(arr, 2)
  12.                     brr(s, k - 1) = arr(j, k)
  13.                 Next
  14.             End If
  15.         Next
  16.     End If
  17. Next
  18. [c7:i500].ClearContents
  19. If s > 0 Then Range("c7").Resize(s, 7) = brr
  20. End Sub
复制代码
回复

使用道具 举报

发表于 2014-11-21 04:47 | 显示全部楼层    本楼为最佳答案   
………………

关键词查询.zip

25.32 KB, 下载次数: 26

回复

使用道具 举报

 楼主| 发表于 2014-11-21 09:10 | 显示全部楼层
dsmch 发表于 2014-11-21 04:47
………………

老师您好!您太有才了啊,功能基本实现,就是2011年度查询时,提示“下标越界9”。请老师修改一下。谢谢!!!!

点评

附件测试没有发现,可在首行添加一句纠错处理:on error resume next  发表于 2014-11-21 10:23
回复

使用道具 举报

发表于 2014-11-21 09:56 | 显示全部楼层
C7单元格复制以下公式,三键回车(公式复制后,点一下公式编辑栏的任意位置,先按住 ctrl、shift 两个键,然后敲enter键),
横拉、下拉;
=INDEX(OFFSET(INDIRECT(LOOKUP($F$4,{2011,2012,2013},{"上两年数据!","上一年数据!","本年数据!"})&"B1:B999"),,COLUMN()-3),SMALL(IF(ISERROR(FIND($H$4,INDIRECT(LOOKUP($F$4,{2011,2012,2013},{"上两年数据!","上一年数据!","本年数据!"})&"F4:F99"))),999,ROW($4:$99)),ROW(A1)))&""
回复

使用道具 举报

 楼主| 发表于 2014-11-21 12:49 | 显示全部楼层
金点子双色球 发表于 2014-11-21 09:10
老师您好!您太有才了啊,功能基本实现,就是2011年度查询时,提示“下标越界9”。请老师修改一下。谢谢! ...

加了一句就好了。非常感谢!设为最佳答案。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 11:25 , Processed in 0.447996 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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