2017-02-14 201 views
0

我爲我的高級過濾器創建了一個動態列表範圍。我創建了名爲「數據」的名稱。當我嘗試將名稱輸入到VBA公式中時,我收到一個錯誤。動態名稱適用於標準和輸出範圍?高級過濾器Excel VBA

Range("Sheet2!Data").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range _ 
     ("Sheet2!Filter"), CopyToRange:=Range("Sheet2!Location"), Unique:=False 

我收到以下運行時錯誤 '1004':的object'_Global

法 '範圍'」失敗

回答

3

如果您的命名範圍範圍是Sheet2那麼您需要完全符合RangeWorksheets("Sheet2"),如下面的代碼所示:

With Worksheets("Sheet2") 
    .Range("Data").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range("Filter"), _ 
       CopyToRange:=.Range("Location"), Unique:=False 
End With 

如果您的命名範圍範圍Workbook然後使用下面的代碼(有沒有必要與Worksheet來限定Range):

Range("Data").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("Filter"), _ 
       CopyToRange:=Range("Location"), Unique:=False 
+0

或'表(‘Sheet2的’)範圍(‘數據’) .AdvancedFilter行動:= xlFilterCopy,CriteriaRange:=範圍( 「過濾器」),CopyToRange:=範圍( 「位置」),獨特之處:= FALSE' –

+0

無論出於何種原因,它不能識別名稱。我爲所有3個名字創建了一個抵消公式;數據,過濾器和位置。但是當我使用數據時代碼崩潰。我使用的範圍是A11:N1000,但我可以添加列和行,所以要使其變爲動態。有可能有最後一行或最後一列的範圍? – Jeff