Excel精英培训网

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

[已解决]明细数据筛选的问题,请坛里的大神帮忙!!!

[复制链接]
发表于 2012-10-17 11:58 | 显示全部楼层 |阅读模式
请老师帮我写一个筛选代码,O(∩_∩)O谢谢!!!

2012-10-17_115623.jpg 明细数据筛选.rar (56.28 KB, 下载次数: 15)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-10-17 12:09 | 显示全部楼层
备注里会出现哪几种状态,,退货未抵账,退货抵账,还有其它的么??
回复

使用道具 举报

发表于 2012-10-17 12:17 | 显示全部楼层
还有个问题,直接筛选抵账的话,会把退货抵账和退货未抵账都筛选进去。。所以这个需要问清楚
回复

使用道具 举报

 楼主| 发表于 2012-10-17 12:37 | 显示全部楼层
huoxieshen 发表于 2012-10-17 12:17
还有个问题,直接筛选抵账的话,会把退货抵账和退货未抵账都筛选进去。。所以这个需要问清楚

知道,备注里会存在其它的项目。
在筛选的时候我会注意输入筛选的内容。
请老师帮忙,O(∩_∩)O谢谢!!!
回复

使用道具 举报

发表于 2012-10-17 12:41 | 显示全部楼层
Sub test()
    Dim arr, x, y, z, str, arr1(1 To 100000, 1 To 9)
    arr = Sheet2.Range("b4:T" & Sheet2.Cells(Sheet2.Rows.Count, 2).End(xlUp).Row)
    str = Sheet8.Range("T4")
    For x = 1 To UBound(arr)
        If arr(x, 15) Like str Then
            y = y + 1
            arr1(y, 1) = arr(x, 14)
            arr1(y, 2) = arr(x, 2)
            arr1(y, 3) = arr(x, 3)
            arr1(y, 4) = arr(x, 4)
            arr1(y, 5) = arr(x, 9)
            arr1(y, 6) = arr(x, 6)
            arr1(y, 7) = arr(x, 8)
            arr1(y, 8) = arr(x, 10)
            arr1(y, 9) = arr(x, 15)
        End If
    Next
    Sheet8.Range("i5:t1000").ClearContents
    Sheet8.Range("l5").Resize(y, 9) = arr1
End Sub

明细数据筛选.zip (22.23 KB, 下载次数: 13)
回复

使用道具 举报

发表于 2012-10-17 12:54 | 显示全部楼层    本楼为最佳答案   
js5 发表于 2012-10-17 12:37
知道,备注里会存在其它的项目。
在筛选的时候我会注意输入筛选的内容。
请老师帮忙,O(∩_∩)O谢谢!! ...

如果T4单元格的内容和你备注里的一模一样的话,向伟老师的就可以符合要求。。。如果要筛选出抵账和未抵账的,可以用下面的代码试试~~
  1. Sub text()
  2.     Dim arr(), brr(1 To 60000, 1 To 9), i As Long, r As Long
  3.     With Sheets("明细数据")
  4.        r = .Cells(Rows.Count, 2).End(3).Row
  5.        arr = .Range("b5:t" & r).Value
  6.     End With
  7.        bz = Sheets("筛选表格").Range("t4").Value
  8.     For i = 1 To r - 4
  9.        If InStr(bz, "未") > 0 Then
  10.         If InStr(arr(i, 15), bz) Then
  11.            k = k + 1
  12.            brr(k, 1) = arr(i, 14)
  13.            brr(k, 2) = arr(i, 2)
  14.            brr(k, 3) = arr(i, 3)
  15.            brr(k, 4) = arr(i, 4)
  16.            brr(k, 5) = arr(i, 9)
  17.            brr(k, 6) = arr(i, 17)
  18.            brr(k, 7) = arr(i, 8)
  19.            brr(k, 8) = arr(i, 10)
  20.            brr(k, 9) = arr(i, 15)
  21.         End If
  22.        Else
  23.          If InStr(arr(i, 15), bz) And InStr(arr(i, 15), "未") = 0 Then
  24.            k = k + 1
  25.            brr(k, 1) = arr(i, 14)
  26.            brr(k, 2) = arr(i, 2)
  27.            brr(k, 3) = arr(i, 3)
  28.            brr(k, 4) = arr(i, 4)
  29.            brr(k, 5) = arr(i, 9)
  30.            brr(k, 6) = arr(i, 17)
  31.            brr(k, 7) = arr(i, 8)
  32.            brr(k, 8) = arr(i, 10)
  33.            brr(k, 9) = arr(i, 15)
  34.          End If
  35.        End If
  36.     Next
  37.     With Sheets("筛选表格")
  38.        .Range("l6:t65536").ClearContents
  39.        .Range("l6").Resize(k, 9) = brr
  40.     End With
  41. End Sub
复制代码

明细数据筛选.rar

25.08 KB, 下载次数: 14

回复

使用道具 举报

 楼主| 发表于 2012-10-17 13:22 | 显示全部楼层
JLxiangwei 发表于 2012-10-17 12:41
Sub test()
    Dim arr, x, y, z, str, arr1(1 To 100000, 1 To 9)
    arr = Sheet2.Range("b4:T" & Sh ...

谢谢伟老师帮忙,您写的代码不具有模糊筛选。不好意思,最佳答案不能给您。非常抱歉!!!
回复

使用道具 举报

 楼主| 发表于 2012-10-17 13:24 | 显示全部楼层
huoxieshen 发表于 2012-10-17 12:54
如果T4单元格的内容和你备注里的一模一样的话,向伟老师的就可以符合要求。。。如果要筛选出抵账和未抵账 ...

老师谢谢您的给我的帮助!!!

这就是我想要实现的功能,太感性您啦!!!{:28:}

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 23:29 , Processed in 4.126880 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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