別の場所に移動したいテーブルがあり、データの大部分を削除したいと考えています (あまり気にしない空白や 0 がかなりあります)。これまでのコードは次のとおりです。
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count", 0, Empty)
srcRange.Delete
このセットアップでは空白のみが削除されるため、次のバリエーションで数回テストしました。
'this code will return only the 0's
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count", 0)
'this code will return only the "count"'s
Dim srcRange As Range
Dim copysheet As Worksheet
Set copysheet = ActiveSheet
Set srcRange = copysheet.range("B1:D1598")
srcRange.AutoFilter Field:=3, Criteria1:=Array("#VALUE!", "Count")
したがって、私が到達した結論は、何らかの理由で、AutoFilter ツールは、criteria1 に入力した最後の基準によってのみフィルタリングされているということです。理由についての洞察を私に与えることができる人はいますか?
参考までに、私の一時的な回避策は、1 つではなく 4 つのフィルター/削除コマンドを実行することであり、問題なく動作しています。これの原因について少し学びたいと思います。
ありがとう!