我一直在試圖找出了這一點,但沒有取得任何進展......遍歷過濾條件
我有一個過濾器(d欄),我試圖創建一個循環每個標準(我在有我的過濾器上至少有1000個標準)。 例:對於每一個過濾器上(列d),我會運行一系列副本標準...
該代碼在心不是所有的工作:
Sub WhatFilters()
Dim iFilt As Integer
iFilt = 4
Dim iFiltCrit As Integer
Dim numFilters As Integer
Dim crit1 As Variant
ActiveSheet.Range("$A$1:$AA$4635").AutoFilter Field:=16, Criteria1:= _
"Waiting"
numFilters = ActiveSheet.AutoFilter.Filters.Count
Debug.Print "Sheet(" & ActiveSheet.Name & ") has " & numFilters & " filters."
If ActiveSheet.AutoFilter.Filters.Item(iFilt).On Then
crit1 = ActiveSheet.AutoFilter.Filters.Item(iFilt).Criteria1
For iFiltCrit = 1 To UBound(crit1)
Debug.Print "crit1(" & iFiltCrit & ") is '" & crit1(iFiltCrit)
'Copy everything
Next iFiltCrit
End If
End Sub
我的錯誤似乎是確定我的過濾器列...
仍然沒有爲我工作要麼...在這種情況下,它之前如果結構,當我把它關閉,對象定義 – 2015-04-01 16:35:39
返回錯誤。如果我禁用我的工作表自動篩選(unclicking過濾停止數據功能區上的圖標),然後嘗試運行上面的代碼,還會在「numFilters = ...」行中設置錯誤91 - 對象變量或塊變量未設置。所以我添加了這樣一個檢查'如果不是ActiveSheet.AutoFilterMode Then Exit Sub End If'(請參閱上面的更新代碼片段) – PeterT 2015-04-01 18:12:03
它似乎不明白什麼是iFilt ..當結構如果ActiveSheet.AutoFilter.Filters.Item( iFilt)。然後進行測試,直接結束,如果;沒有如果測試,相同的對象錯誤返回@PeterT – 2015-04-01 19:06:36