[英]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.