[问题] EXCEL VBA 筛选字段后分页或分档案

楼主: sonic74768 (牛牛牛)   2019-05-07 14:02:01
各位大大好
现在我想要用特定字段栏的值筛选分档案或是分页
以下我先简述我的方法 各位高手可以跳过
我用的方法是利用EXCEL本身的"特殊筛选"
Columns(ert & ":" & ert).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
复制到一个Transit分页
Sheets.Add After:=ActiveSheet
Sheets(ActiveSheet.Name).Name = "transit"
Sheets("transit").Select
Range("A1").Select
ActiveSheet.Paste
然后从A1用设循环变量X到最后一个
For i = 2 To Sheets("transit").Range("A1").End(xlDown).Row
x = Sheets("transit").Cells(i, "A")
再回原本的工作表筛选那栏筛选并复制出去
PM53 = Range("A2").End(xlDown).Row
ActiveSheet.Range("$A$2:$" & ert & PM53).AutoFilter Field:=Range("a1:" &
ert & "1").Columns.Count, Criteria1:=x
重点在这
虽然这样可以达到我的目的但是
在资料量很多的时候
这样筛选在复制出去很吃资源
请问各位有没有更有效率的方法
例如:不用用一个TRANSIT表做转接 直接回圈指定字段的唯一值(删除重复)
本人都是自学依据EXCEL录制的功能 想比较没有效率的方法
以上问题若有不详尽的还请大家指出来
再请各位高手帮忙
作者: soyoso (我是耀宗)   2019-05-07 14:05:00
先问1.分页是什么?2.特殊筛选?以宏来看,是要各别分至各个工作表内吧,range.advancedfilter也不是叫特殊筛选,微软定义是叫进阶筛选https://i.imgur.com/R02aDz4.jpg取唯一值不要表格的话,dictionary、application.match看是否于变量内为错误、工作表函数countif是否为1或0(看是否范围包含到循环所指定的列号那个储存格)、instr看是否在已连结的字串内不要筛选range.autofilter来复制的话,排序,range.find(找到第一笔储存格),工作表函数countif取得笔数用笔数range.resize,复制贴上方面不带格式的话range =range.value
楼主: sonic74768 (牛牛牛)   2019-05-07 14:52:00
1.分页是指EXCEL的工作表 2.特殊筛选就是 资料 进阶筛选 不选重复的纪录大概知道大大的方向 先谢谢
作者: soyoso (我是耀宗)   2019-05-07 14:56:00
这个最近我版上有回过类似的问题,但找不到了google后有网站有备份到这篇 http://tinyurl.com/y2a8dtf4如果要分至各档案(活页簿)的话,该篇内文所提供的档案可看看;如要分至各个工作表,连结内下方回文方式调整看看

Links booklink

Contact Us: admin [ a t ] ucptt.com