[問題] 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