close

 

進階篩選:

3個基本要素要掌握:

1.資料區:資料各行要有標題,必須是RANGE物件的範圍。

2.條件區:條件各行要有標題,且必須是RANGE物件的範圍。

3.篩選結果原地顯示或複製到指定區域:原地顯示 xlFilterInPlace、 複製到指定區域xlFilterCopy,當設定為"複製到指定區域"時要多設定一個 CopyToRange的參數。

4.不選重複的值:這參數名稱為Unique  ,進階篩選預設為false(不開啟),當開啟時(true),則會以"不選重複的記錄"完成進階篩選,筆者是以不開啟作執行,但是如果你篩選的條件內容是唯一值時,則我會打開,減少比對次數。

其他補充:增有網友留言,可以把條件或資料區放在不同的工作頁面中嗎? ANS:筆者用OFFICE 2010測試,如果你是選用"將篩 選結果複製到其他地方",那"資料範圍"與"複製到"的設定必續在同 一頁歐!!!!但條件區則無此限制。

 

image

物件設定使用小技巧:

使用 RANGE的End(xlUp).Row 屬性取的最後一列有使用的儲存格位置,這方法跟COUNTA比較後,好處是可以不管空白有無,取得最後一列有使用的儲存格;如同英文的意思是由下往上找第一格有被使用的儲存格,所以空白有無可以不管了。

 A = Sheets("部品出貨").Range("A10000").End(xlUp).Row 

透過SET 直接設定物件的儲存格範圍,這樣比較好操作。

 Set myrange1 = Sheets("XXXXXX").Range("A1" & ":" & "AH" & a)

Set myRange2 = Sheets("XXXXXX").Range("ai1" & ":" & "Ak" & a)

使用完後記得作Set myrange1=nothing 作釋放。

VBA:

xlFilterInPlace:

myrange1.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=myRange2 

xlFilterCopy:

myrange1.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=myRange2 , CopyToRange:=Sheets("XXXXXX").Range("AM1")

arrow
arrow
    創作者介紹
    創作者 a200271071 的頭像
    a200271071

    a200271071的部落格

    a200271071 發表在 痞客邦 留言(1) 人氣()