2009-09-01 3 views

答えて

1

データの列全体を含む数式(例:COUNT)を使用していることを確認してください。 の場合は、合計行をオンにします。

フィルタが変更されると、Excel計算イベントは式のために発生し、次のコードをシートに挿入することでこれを選択できます。

Private Sub Worksheet_Calculate() 

MsgBox "Calculation" 

End Sub 

あなたのシートは、シート上の計算イベントが原因フィルタの変化に由来していなかった場合はそれ以外のコードが決定するのに必要とされるであろう、データだけを持つように設計する必要があります。

フィルタ値を取得するコードを追加する必要があります。 にフォーカスするフィルター、Citeria1、Criteria2、Operator、Onなどのクラスメンバ

+0

このテーブル以上のシートがある場合は、 '= SUBTOTAL(3、...')を使用してフィルタの結果を数えます。 Worksheet_Calculateルーチンでは、その値をモジュール全体の変数に格納し、最後の状態と比較します。変更するたびに、フィルタが変更されたことがわかります。もちろん、これはフィルタが変更されたが、結果のカウントが同じである場合のままになります。その後、ロバートの最後の発言はあなたを助けるでしょう... –

0

私のケースはExcelデータベースでした。 「フィルタリングされたアイテムの数」または「会議インスタンスの数」を示すラベルを作成しました。そのため、ドロップダウンフィルタを使用してフィルタを適用すると、このラベルが更新されます。私は "フィルター交換"イベントを見つけませんでした。 「か:あなたは「=カウント数(B B)」へのセルの数式を設定し

  • を使用して喜んではありませんあなたのシート内のセルを選択し

    • :私は、次のように上記の方法を試してみました= counta(C:C) "または列全体に依存する数式。セルが同じ列にないことを確認してください
    • この補助セルのフォーマットタイプを「カスタム」に設定し、フォーマットを「;;;」に設定してくださいそのセルの内容は、VBAで
    • 見えないプライベートサブWorksheet_Calculate(

    あなたのコードを実行するために、「ワークシートの計算」イベントを使用)

    「あなたがたときに、フィルタ実行したいコマンドとアクションう変更

    さて、あなたが行われ

    • End Subの
  • 関連する問題