Excel精英培训网

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

VBA高级筛选出错

[复制链接]
发表于 2022-4-21 00:33 | 显示全部楼层 |阅读模式
3学分
本帖最后由 zzg1121 于 2022-4-21 22:27 编辑

求助,感谢!想要的效果:
用“筛选表”中的 N个不同编码,筛选出“数据表”中 符合这些编码的数据行 并 复制到 “粘贴表”。
数据表中 一个编码有N条数据行。N个编码*N个数据行,这个算是多对多查询吧。

我自己用 名称管理器 设置了 条件范围,高级筛选 录制了宏 ,第一次运行时 结果是正确的,后面运行结果完全不正确。
网上搜了各种办法,实在无法自己解决,只能求助了,感谢!


补充:具体遇到的问题

第一次筛选的条件是:编号A(第一个条件),编号B(第二个条件),编号C(第三个条件)...等,运行录制的宏,筛选出的结果是正确的,每个条件的都能筛选出来。然后,修改筛选条件为:编号D(第一个条件),编号E(第二个条件),编号F(第三个条件)...等,再次运行,筛选结果就不对了,它始终只显示 第一个条件 的筛选结果。
··································································
感谢各位的帮助,我的问题已解决,效果与预期一致。

在“筛选表”输入N个条件,筛选出数据到“粘贴表”,每次筛选前都清空 上一次的筛选结果,就可以重复筛选查询。

这是我实现效果的代码,目前测试没有出错,有需改良的地方,望指教

Sub 动态查询()

Call qingchushuju
' 筛选前先运行“清空数据”的子程序
    Sheets("数据表").Columns("A:T").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("筛选表").Range("G1").CurrentRegion, CopyToRange:=Sheets("粘贴表").Range("A1"), _
        Unique:=False
End Sub

Sub qingchushuju()

' 清除粘贴表的数据

    Sheets("粘贴表").Select
    Cells.Select
    Selection.ClearContents
End Sub

宏高级筛选出错.rar

107.74 KB, 下载次数: 13

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-4-21 20:04 | 显示全部楼层
帮你改了下 看看   高级筛选  不能把筛选的结果复制到另外一个sheet,只能在活动工作表内复制

宏高级筛选出错.zip

115.36 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2022-4-21 21:14 | 显示全部楼层
釜底抽薪 发表于 2022-4-21 20:04
帮你改了下 看看   高级筛选  不能把筛选的结果复制到另外一个sheet,只能在活动工作表内复制

谢谢您的帮助,问题暂时没有解决,我再找找方法,感谢
回复

使用道具 举报

发表于 2022-4-21 21:38 | 显示全部楼层
本帖最后由 limonet 于 2022-4-21 21:39 编辑

Sub 筛选()
    Worksheets("数据表").Range("A11").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Worksheets("筛选表").Range("G1").CurrentRegion, CopyToRange:=Sheets("粘贴表").Range("A1"), Unique:=False
End Sub

宏高级筛选出错_2.zip

104.71 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2022-4-21 22:12 | 显示全部楼层
limonet 发表于 2022-4-21 21:38
Sub 筛选()
    Worksheets("数据表").Range("A11").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, ...

感谢感谢,通过各位的帮助,我已经解决问题,效果更加完善了
回复

使用道具 举报

 楼主| 发表于 2022-4-21 22:22 | 显示全部楼层
在“筛选表”输入N个条件,筛选出数据到“粘贴表”,这是我实现效果的代码,每次筛选前都清空 上一次的筛选结果,就可以重复筛选查询,目前测试没有出错,有需改良的地方,望指教

Sub 动态查询()

Call qingchushuju
' 筛选前先运行“清空数据”的子程序
    Sheets("数据表").Columns("A:T").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Sheets("筛选表").Range("G1").CurrentRegion, CopyToRange:=Sheets("粘贴表").Range("A1"), _
        Unique:=False
End Sub

Sub qingchushuju()

' 清除粘贴表的数据

    Sheets("粘贴表").Select
    Cells.Select
    Selection.ClearContents
End Sub
回复

使用道具 举报

发表于 2022-4-24 22:53 | 显示全部楼层
详见附件,数组方法

宏高级筛选出错.rar

115.5 KB, 下载次数: 5

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 16:21 , Processed in 0.240600 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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