我已經嘗試了多種方法來篩選唯一值的列(包括內部有空格的空格和空格)。我想過濾這些值,然後將它們粘貼到另一個工作表中的列a中。VBA高級篩選唯一值並複製到另一個工作表
Sub filter_2()
With Sheets("ICM flags")
.Columns("a").AdvancedFilter Action:=xlFilterCopy, copytorange:=Sheets("Flag Update (2)").Range("a2"), Unique:=True
End With
End Sub
以上方法適用於.range("a2")
,但如果我嘗試使用.range("a1")
我得到運行時錯誤1004級的先進過濾方法失敗。
我得到運行時錯誤1004高級過濾方法的類失敗,下面的方法。
Sub unique_filter()
Sheets("ICM flags").Columns("a").AdvancedFilter _
Action:=xlFilterCopy, _
copytorange:=Sheets("Flag Update (2)").Range("a1"), Unique:=True
End Sub
對於上述兩種方法,並與編輯Davesexcel答案:
Sub AdvFilter()
Dim ws As Worksheet, sh As Worksheet
Dim rng As Range, Frng As Range
Set sh = Sheets("ICM Flags")
Set Frng = sh.Range("A:A")
Set ws = Sheets("Flag Update (2)")
Set rng = ws.Range("A1")
'Frng.AdvancedFilter Action:=xlFilterCopy, copytorange:=rng, Unique:=True
Frng.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
End Sub
該方法適用於FilterInPlace
但不CopyToRange
有時(並不總是)如果沒有選擇要篩選的範圍內發生這個錯誤。嘗試在過濾之前選擇範圍。選擇*不應該被要求,但我看到它有所作爲。 –
如果您想將高級過濾器複製到另一個工作表,我相信您需要使用變量。 – Davesexcel