2014-03-31 61 views
0

我試圖通過Excel中的高級過濾器選項獲取唯一數據的列表。 所以,我記錄我想要做宏觀和我得到這個作爲代碼:Excel VBA錯誤的高級過濾器副本

Sheets("Totaal").Range("A3:A65000").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range(_ 
    "D2"), Unique:=True 

這應該是罰款,據我所知,因爲我這樣做了幾次。問題是,用這個,他只將第一個元素複製到選定的範圍。 (我嘗試着實際給它一個範圍,但沒有改變任何東西)。

所以,只複製第一個元素不是整個數組。如果我手動執行它的作品。

+0

不,我不能。那裏有我無法分享的數據(與工作有關)。我想你也看不出有什麼錯誤嗎?我讓我這樣做的人爲了現在手動做,所以這不是緊迫的問題。 – Dries

+0

你有沒有試過做過濾器和分兩步複製? – Zaider

回答

0

陷入這一個,非常有趣的問題。我創建了一個測試表來模仿看上去像你:

start

下面的代碼掉落了獨特的入口進入山坳d開始第2行:

Option Explicit 
Sub Test() 

Dim TotaalSheet As Worksheet 

'set worksheet for easy reference 
Set TotaalSheet = ThisWorkbook.Worksheets("Totaal") 

'apply the advanced filter to get uniques 
With TotaalSheet.Range("A3:A65000") 
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=TotaalSheet.Range("D2"), Unique:=True 
End With 

End Sub 

下面是結果:如果許多空單元格的一個

end

+0

我發現如果您正在使用的範圍中的第一個或多個單元格(例如TotaalSheet.Range(「A3:A65000」))爲空白,則複製將失敗或停止。 – Alan

+0

嘿@Alan,你能詳細說明一下嗎?我當然不希望錯誤的代碼浮在哈哈周圍。如果數據不連續,它會失敗嗎? –

0

沒有被複制的範圍的頂部。