簡體   English   中英

運行時錯誤:Range AutoFilter上的'1004'

[英]Run-time error: '1004' on Range AutoFilter

我想用VBA做什么 - 帶有數組和刪除行的過濾表。 我的數組有4個元素(在循環中更改為5個不同的集合)。 正在過濾的列有5個元素。 我想得到的只是1.這是一個循環,它將創建5個報告,每個報告根據第29列過濾不同的元素。

如果在調試模式下,我手動過濾該列並跳過該行,我在第二次嘗試再次清除所有過濾器時出現相同的錯誤5行。

這是788部分的765和770行。其他一切運行順利。

FilterOutArray - 包含4個元素的數組(每個都是Variant / String)。 第29列有5個不同的值,沒有空格

我試圖用字符串引用“Criteria1”,看看過濾一個元素是否有效,但不是。

'Run-time error: '1004' on row below
ActiveSheet.Range(Cells(1, 1).Cells(29, LastRow)).AutoFilter Field:=29, Criteria1:=FilterOutArray, Operator:=xlFilterValues

Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp

'Run-time error: '1004' on row below
ActiveSheet.Range(Cells(1, 1).Cells(29, 9999)).AutoFilter Field:=29

在線:

ActiveSheet.Range(Cells(1, 1).Cells(29, LastRow)) ...

應該是逗號,而不是點。 像這樣:

ActiveSheet.Range(Cells(1, 1), Cells(29, LastRow)) ...

“有趣”的部分是這樣的: Cells(1,1),Cells(2,2).Address是一個有效的語法,給出相應單元格的地址,右列1列,下行1行,例如B2

無論如何,一般來說,請考慮如何避免在Excel VBA中使用Select 寫2個單元格定義范圍的“正確”方法是這樣的:

With Worksheets(1)
    Set myRange = .Range(.Cells(1, 1), .Cells(5, 5))
End With

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM