在我的數據分析(First Question)的持續傳奇中,我想要刪除其部門(字段7)不是101,102或103的所有行(名稱已更改以保護無辜)。數據中有大約100個部門,因此使用Criteria1:=Array("104", "105", "106",
等是不切實際的。Excel VBA自動過濾器除三個之外
我願做這樣的事情:
myrange.AutoFilter Field:=7, Criteria1:="<>101", Operator:=xlOr, Criteria2:="<>102", Operator:=xlOr, Criteria3:="<>103"
但Excel不能識別超過2個標準。我可以添加一個幫助列,並讓宏在每行中運行(如果是101,102或103,那麼value = Yes),過濾掉所有剩下的內容,但是我將它保存爲最後一行採取。
有沒有辦法讓Autofilter Criteria1不等於數組?喜歡的東西:
myrange.AutoFilter Field:=7, Criteria1:="<>" & Array("101", "102", "103")
@ garys-student我很難跟着這個。我假設第6行的意思是「對於我的數據的G列中的每個單元格」,但我不確定這是怎麼回事,因爲從未設置「r」的範圍。另外,我不熟悉'Union'函數。我是否正確地假設它將當前單元格添加到「rDelete」範圍? –
另外,不需要聲明'v'嗎? –
@SMPerron:你的假設是正確的,在For循環中,每次通過循環時r都是「設置的」,並且不需要明確設置。如果v不變暗,則認爲它是變體。打開一個新的,新的工作簿,把一些臨時數據放在裏面,然後嘗試一下宏。如果事情出錯,你的真實數據不會被破壞.....祝你好運! –