Board logo

標題: [發問] 用Excel的[進階篩選]之[不重覆篩選], 竟然會錯誤 [打印本頁]

作者: yen956    時間: 2017-3-29 13:35     標題: 用Excel的[進階篩選]之[不重覆篩選], 竟然會錯誤

請教諸位大大,
用Excel 的[進階篩選]之[不重覆篩選], 竟然會錯誤, 真奇怪!
(53.3會有兩筆: [D8]及[D12]),
VBA 如下:
Sub 不重覆篩選1()
    Dim Ar As Range, eR&
    eR = [A65536].End(xlUp).Row
    Set Ar = Range("A8:A" & eR)
    Ar.AdvancedFilter xlFilterCopy, CopyToRange:=[D8], Unique:=True
End Sub
手動也一樣, 如下圖:
[attach]26913[/attach]
若改用Dictionary則沒問題
Sub 不重覆篩選()
    Dim d As Object, Ar As Range, eR&, E
    Set d = CreateObject("Scripting.Dictionary")
    eR = [A65536].End(xlUp).Row
    Set Ar = Range("A8:A" & eR)
    For Each E In Ar
        d(E.Value) = ""
    Next
    [D8].Resize(d.Count) = Application.Transpose(d.keys)
End Sub
結果如下圖:
[attach]26914[/attach]
附檔
[attach]26915[/attach]
作者: stillfish00    時間: 2017-3-29 17:16

回復 1# yen956
因為 function 假設你的範圍是含標題的,所以把你的A8當成標題列
作者: yen956    時間: 2017-3-29 17:56

回復 2# stillfish00
謝謝大大快速的回覆, 謝謝!
但是這次我連標題[A7]也選進去, 結果還是一樣.
我試過把[A8] copy 到 [A12], 結果也一樣.
也試過把[A8][A12]完全清除, 再輸入53.5, 結果也一樣.
(好像也不是文字與數字的格式問題)
[attach]26916[/attach]
作者: stillfish00    時間: 2017-3-29 19:05

本帖最後由 stillfish00 於 2017-3-29 19:10 編輯

回復 3# yen956
我用你的檔案手動試了幾次,有時候跟你一樣,有時候正常
又把分別把兩種情況都錄製巨集下來
不正常的情況,巨集裡都是從A8開始(選的時候還是有選A7...) :
Range("A8:A21").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "D7"), Unique:=True

正常的情況,錄製的巨集裡就是從A7開始。

感覺是Excel手動操作上的bug , VBA 的話就是要含標題列

你可以看你的圖,你有選A7:A21,進階篩選視窗卻是"R8C1:R18C1"???,這邊就會造成錯
作者: jackyq    時間: 2017-3-29 19:40

本帖最後由 jackyq 於 2017-3-29 19:47 編輯

實驗結果:

要先叫出 進階篩選 , 才能用滑鼠選範圍
不能先用滑鼠選範圍 , 才叫出 進階篩選
因為先用滑鼠選範圍,  再叫出 進階篩選視窗

此時 篩選視窗的範圍 是上一次的設定值 ( 舊的設定值 而不是你剛剛用滑鼠選的最新範圍 )
但是你卻以為EXCEL已經幫你自動帶入剛剛滑鼠選的範圍
作者: jackyq    時間: 2017-3-29 19:45

回復 1# yen956

這是股票的東西嗎?
作者: yen956    時間: 2017-3-29 20:43

本帖最後由 yen956 於 2017-3-29 20:47 編輯

to stillfish00 大大:
抱歉, 太猴急了, 沒試VBA就回文, 實在抱歉.
看到 5# jackyq 大大的指點 就知道錯在那裡,
還是要用 VBA 比較保險.而且
VBA 的話就是要含標題列, 謝謝!!
to jackyq 大大:
要先叫出 進階篩選 , 才能用滑鼠選範圍
不能先用滑鼠選範圍 , 才叫出 進階篩選

謝謝再次指導,是在練習VBA時發現的.是不是股票就不清楚了.
(其實VBA改用Dictionary後已沒問題了,完整VBA放在Sheet3)
(原檔出自 http://forum.twbts.com/thread-19422-1-1.html)
再次謝謝諸位大大!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)