我的數據是像如下:Excel VBA中自動篩選陣列誤差
名稱值標誌
愛麗絲5回購
鮑勃8跳轉
丹9
愛麗絲1
Alice 6 Jump
丹0回購
鮑勃8跳轉
如果有任何名稱,任何記錄,在標誌字段中是否有「回購」,那麼我想保留與該名稱相關聯的所有記錄。 Alice有3條記錄,其中一條是BUYBACK,所以我想保留ALice的所有記錄。丹在兩人中有一人回購,所以我想保留丹的兩條記錄,而鮑勃的兩條記錄都被刪除。
當我嘗試執行下面的操作時,我的AutoFilter出現錯誤。錯誤說「需要對象」。我似乎無法弄清楚什麼是錯的。
n = 1
Dim BBK_Array() As Variant
For j = 1 To FinalRow
If Cells(j, 3).Value = "BUYBACK" Then
If n = 1 Then
ReDim Preserve BBK_Array(1 To n)
BBK_Array(n) = Cells(j, 1).Value
n = n + 1
ElseIf BBK_Array(n - 1) <> Cells(j, 1).Value Then
ReDim Preserve BBK_Array(1 To n)
BBK_Array(n) = Cells(j, 1).Value
n = n + 1
End If
End If
Next j
ActiveWorksheet.UsedRange.AutoFilter Field:=1, Criteria1:=BBK_Array(), Operator:=xlFilterValues
編輯:
當我這樣做,它的工作。我不知道爲什麼:
ActiveWorkbook.Activesheet.UsedRange.AutoFilter Field:=1, Criteria1:=BBK_Array(), Operator:=xlFilterValues
** FinalRow **在哪裏成立? –
@加里的學生..早在代碼中。當我做了Activeworkbook.activesheet然後它工作。 – Amatya
好吧,我猜我的牀單不是主動的或什麼的。我應該刪除這個問題嗎?你能告訴我爲什麼activeworkbook.activesheet工作,但只是activesheek沒有?我在保存數據的同一個文件中寫了宏。謝謝 – Amatya