編集:@HeadofCateringのソリューションを試しましたが、最初は失敗しました。ただし、参照された列に値を入力すると機能しました(私のソリューションは逆の条件でも失敗しました-列ヘッダーを空白にすると失敗します)。
ただし、これは私 (そしておそらくあなた) が見たものとは完全には一致しません。空白のヘッダーを持つ列にフィルターを追加することは間違いありません。ただし、私が見た失敗で一貫していたことが 1 つfilterColumn
ありApplication.UsedRange
ます。参照している列が実際にその中にあることを確認してみてくださいApplication.UsedRange
(簡単な方法:Application.UsedRange.Select
イミディエイト ウィンドウで実行し、列が選択されているかどうかを確認してください)。かなりの数の列を参照しているため、特定のポイント (列ヘッダーを含む) を超える値がない可能性があり、フィルターする列を指定すると、実際にはUsedRange
.
テストする興味深い(これは私にとっても新しいことです)ことは、空白のシートを取り、セルに値を入力し、A1
列B1
を選択A:G
して手動でオートフィルターを追加することです-これは列AとBにのみフィルターを追加します(関連する状況は完全に空白のシートにフィルターを追加しようとすると見つかります)。
せせらぎで申し訳ありません-これはあなたの問題でさえない可能性があります:)
古いソリューション (上記の条件が使用されている場合は機能しません)
やり過ぎかもしれませんが、シートの値も設定してみてください (ここではサンプル範囲を使用したことに注意してください)。
Sub SOTest()
Dim ws As Worksheet
Dim filterColumn As Integer
' Set the sheet object and declare your variable
Set ws = ActiveSheet
filterColumn = 2
' Now try the filter
ws.Range("$A$1:$E$10").AutoFilter Field:=filterColumn, Criteria1:="<>"
End Sub