Excel精英培训网

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

[已解决]找半天未果,超难度筛选问题,

[复制链接]
发表于 2012-8-28 19:43 | 显示全部楼层 |阅读模式
根据第一行 D-L的要求
筛选出 “库存”表中的值

如上的结果,谢谢大师!

请看附件~~~~~~
最佳答案
2012-8-28 22:58
本帖最后由 柳如烟 于 2012-8-28 23:15 编辑

  1. Sub 筛选()
  2.     Dim arr, cn, rs, sql$, i%
  3.     Set cn = CreateObject("adodb.connection")
  4.     With cn
  5.         .provider = "microsoft.ace.oledb.12.0"
  6.         .connectionstring = "extended properties='excel 12.0;hdr=no';data source=" & ThisWorkbook.FullName
  7.         .Open
  8.     End With
  9.     sql = "select f2,f3,f4,f5,f6,f7,f8,f9,f10,f11 from [库存$a2:l" & Sheet56.UsedRange.Rows.Count & "] where"
  10.     With Sheets("录入表")
  11.         arr = .Range("d1:l1")
  12.         For i = 1 To UBound(arr, 2)
  13.             If arr(1, i) <> "" Then
  14.                 If IsNumeric(arr(1, i)) Then
  15.                     sql = sql & " f" & i + 1 & "=" & arr(1, i) & "  and "
  16.                 Else
  17.                     sql = sql & " f" & i + 1 & "='" & arr(1, i) & "'  and "
  18.                 End If
  19.             End If
  20.         Next
  21.         sql = Left(sql, Len(sql) - 6)
  22.         Set rs = cn.Execute(sql)
  23.         .Range("d2:p1000").ClearContents
  24.         .Range("d2").CopyFromRecordset cn.Execute(sql)
  25.     End With
  26.     cn.Close
  27. End Sub
复制代码
修改一下

筛选.rar

55.92 KB, 下载次数: 17

发表于 2012-8-28 21:44 | 显示全部楼层
回复

使用道具 举报

发表于 2012-8-28 21:52 | 显示全部楼层
模糊查找是干啥用的??

不用管??只需要按按钮么??
回复

使用道具 举报

发表于 2012-8-28 22:58 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柳如烟 于 2012-8-28 23:15 编辑

  1. Sub 筛选()
  2.     Dim arr, cn, rs, sql$, i%
  3.     Set cn = CreateObject("adodb.connection")
  4.     With cn
  5.         .provider = "microsoft.ace.oledb.12.0"
  6.         .connectionstring = "extended properties='excel 12.0;hdr=no';data source=" & ThisWorkbook.FullName
  7.         .Open
  8.     End With
  9.     sql = "select f2,f3,f4,f5,f6,f7,f8,f9,f10,f11 from [库存$a2:l" & Sheet56.UsedRange.Rows.Count & "] where"
  10.     With Sheets("录入表")
  11.         arr = .Range("d1:l1")
  12.         For i = 1 To UBound(arr, 2)
  13.             If arr(1, i) <> "" Then
  14.                 If IsNumeric(arr(1, i)) Then
  15.                     sql = sql & " f" & i + 1 & "=" & arr(1, i) & "  and "
  16.                 Else
  17.                     sql = sql & " f" & i + 1 & "='" & arr(1, i) & "'  and "
  18.                 End If
  19.             End If
  20.         Next
  21.         sql = Left(sql, Len(sql) - 6)
  22.         Set rs = cn.Execute(sql)
  23.         .Range("d2:p1000").ClearContents
  24.         .Range("d2").CopyFromRecordset cn.Execute(sql)
  25.     End With
  26.     cn.Close
  27. End Sub
复制代码
修改一下

筛选.rar

87.88 KB, 下载次数: 17

回复

使用道具 举报

 楼主| 发表于 2012-8-29 14:48 | 显示全部楼层
不好意思吖,这么久才复

试都很好用吖,谢谢大师

不知大师是男是女尼
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 02:32 , Processed in 0.247044 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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