ステップ 1: テーブルにヘルパー列を作成し、その行に空白のフィールドがないかどうかを確認します。たとえば、テーブルに A (価格)、B (数量)、および C (コスト) の 3 つの列がある場合、4 番目の列 D を追加して、「空白はありますか?」というラベルを付けます。式は次のようになります。=IF(OR(ISBLANK([@Price]),ISBLANK([@Quantity]),ISBLANK([@Cost])),"Yes","No")
これにより、すべての空白を表示するためにフィルター処理する列が得られます。
ステップ 2: VBA では、次のようにします。
Range("MyTableNameHere").AutoFilter Field:=Range("MyTableNameHere[Any Blanks?]").Column, Criteria1:="Yes"
Application.DisplayAlerts = False
Range("MyTableNameHere").ListObject.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
Application.DisplayAlerts = True
Range("MyTableNameHere").AutoFilter Field:=Range("MyTableNameHere[Any Blanks?]").Column
これは基本的に、ヘルパー列を使用してテーブルで削除する行にフィルターをかけ、テーブル内のすべての可視データを選択し、テーブルのフィルターを解除します。テーブル内の表示されているすべての行を削除する方法を探していたところ、これを見つけて、これが機能することがわかるまでいじりました。それを取得してヘルパー列と組み合わせて、空白のあるすべての行を選択することも、あなたが望んでいたことのようです。