Excel精英培训网

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

[已解决]高级筛选

[复制链接]
发表于 2016-7-6 15:25 | 显示全部楼层 |阅读模式
请哪位大神帮我按附件的要求做一个程序,万分感谢!
最佳答案
2016-7-6 20:08
本帖最后由 wanao2008 于 2016-7-6 20:11 编辑

请测试:
  1. Sub wanao()
  2.     Dim PinX As String, PeiB As String, Arr, pb, Lx As Single, Y As Integer
  3.     PinX = Sheet2.[a2]
  4.     PeiB = Sheet2.[b2]
  5.     Sheet1.Range("a1:d1").Copy Sheet3.Range("a1:d1")
  6.     Arr = Sheet1.Range("A1").CurrentRegion
  7.     For x = 2 To UBound(Arr)
  8.         Lx = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
  9.         If Arr(x, 1) = PinX Then
  10.             pb = Split(PeiB, "+")
  11.             If UBound(pb) = 2 Then
  12.                 If Arr(x, 2) = pb(0) & "+" & pb(1) Or Arr(x, 2) = pb(0) & "+" & pb(2) Or Arr(x, 2) = pb(1) & "+" & pb(2) Then Y = 1
  13.             End If
  14.             If Arr(x, 2) = PeiB Or Y = 1 Then
  15.                 Lx = Lx + 1
  16.                 For Y = 1 To 4
  17.                     Sheet3.Cells(Lx, Y) = Arr(x, Y)
  18.                 Next
  19.             End If
  20.             Y = 0
  21.         End If
  22.     Next
  23. End Sub
复制代码

高级筛选.rar

36.85 KB, 下载次数: 21

发表于 2016-7-6 17:03 | 显示全部楼层
高级筛选.rar (43.67 KB, 下载次数: 12)
回复

使用道具 举报

发表于 2016-7-6 20:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wanao2008 于 2016-7-6 20:11 编辑

请测试:
  1. Sub wanao()
  2.     Dim PinX As String, PeiB As String, Arr, pb, Lx As Single, Y As Integer
  3.     PinX = Sheet2.[a2]
  4.     PeiB = Sheet2.[b2]
  5.     Sheet1.Range("a1:d1").Copy Sheet3.Range("a1:d1")
  6.     Arr = Sheet1.Range("A1").CurrentRegion
  7.     For x = 2 To UBound(Arr)
  8.         Lx = Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
  9.         If Arr(x, 1) = PinX Then
  10.             pb = Split(PeiB, "+")
  11.             If UBound(pb) = 2 Then
  12.                 If Arr(x, 2) = pb(0) & "+" & pb(1) Or Arr(x, 2) = pb(0) & "+" & pb(2) Or Arr(x, 2) = pb(1) & "+" & pb(2) Then Y = 1
  13.             End If
  14.             If Arr(x, 2) = PeiB Or Y = 1 Then
  15.                 Lx = Lx + 1
  16.                 For Y = 1 To 4
  17.                     Sheet3.Cells(Lx, Y) = Arr(x, Y)
  18.                 Next
  19.             End If
  20.             Y = 0
  21.         End If
  22.     Next
  23. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-7-7 09:22 | 显示全部楼层
wanao2008 发表于 2016-7-6 20:08
请测试:

谢谢,其他功能都实现了,还有一条没实现就是输入红+黄+黑三种颜色时只能筛选红+黄+黑,不能筛出红+黄、红+黑、黄+黑,请帮我再修改一下,谢谢。
回复

使用道具 举报

 楼主| 发表于 2016-7-7 14:14 | 显示全部楼层
可以了,谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:29 , Processed in 0.410658 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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