返回列表 上一主題 發帖

[發問] 用Excel的[進階篩選]之[不重覆篩選], 竟然會錯誤

[發問] 用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
手動也一樣, 如下圖:

若改用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
結果如下圖:

附檔
060315-日分筆量 - 不重覆篩選.zip (383.94 KB)

回復 2# stillfish00
謝謝大大快速的回覆, 謝謝!
但是這次我連標題[A7]也選進去, 結果還是一樣.
我試過把[A8] copy 到 [A12], 結果也一樣.
也試過把[A8][A12]完全清除, 再輸入53.5, 結果也一樣.
(好像也不是文字與數字的格式問題)
test.gif

TOP

本帖最後由 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)
再次謝謝諸位大大!!

TOP

        靜思自在 : 改變自己是自救,影響別人是救人。
返回列表 上一主題