Note: The other languages of the website are Google-translated. Back to English

Excelでデータが変更されたときに自動フィルターを自動的に再適用するにはどうすればよいですか?

Excelでは、適用すると フィルタ データをフィルタリングする機能の場合、フィルタリングされたデータのデータ変更に伴ってフィルタリング結果が自動的に変更されることはありません。 たとえば、データからすべてのAppleをフィルタリングする場合、フィルタリングされたデータのXNUMXつをBBBBBBに変更しますが、次のスクリーンショットのように結果は変更されません。 この記事では、Excelでデータが変更されたときに自動フィルターを自動的に再適用する方法について説明します。

docauotリフレッシュフィルター1

データがVBAコードで変更された場合、自動フィルターを自動的に再適用します


矢印青い右バブル データがVBAコードで変更された場合、自動フィルターを自動的に再適用します

通常、手動で再適用機能をクリックするとフィルターデータを更新できますが、ここでは、データが変更されたときにフィルターデータを自動的に更新するためのVBAコードを紹介します。次のようにしてください。

1。 データが変更されたときにフィルターを自動更新するワークシートに移動します。

2。 シートタブを右クリックして、 コードを表示 コンテキストメニューから、ポップアウトで アプリケーション向け Microsoft Visual Basic ウィンドウの場合は、次のコードをコピーして空白のモジュールウィンドウに貼り付けてください。スクリーンショットを参照してください。

VBAコード:データが変更されたときにフィルターを自動再適用します。

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

docauotリフレッシュフィルター2

注意:上記のコードでは、 シート3 は、使用する自動フィルター付きのシートの名前です。必要に応じて変更してください。

3。 次に、このコードウィンドウを保存して閉じます。これで、フィルタリングされたデータを変更すると、 フィルタ 関数はすぐに自動更新されます。スクリーンショットを参照してください。

docauotリフレッシュフィルター3


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (36)
5の5を評価 · 1の評価
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、グーグルファイナンスでこれらすべてをどのように使用できますか? Tks
このコメントは、サイトのモデレーターによって最小化されました
いいね..本当に必要だ
このコメントは、サイトのモデレーターによって最小化されました
IIは、1つのシートを変更して、他の複数のシートを自動フィルタリングするようにしたいのですが、このコードを変更するにはどうすればよいですか? 例:SheetAが変更されたため、Sheet2、Sheet3、およびSheetXNUMXにオートフィルターが適用されます。 ありがとう!
このコメントは、サイトのモデレーターによって最小化されました
セルが=sheet1!E6に設定されている場合、シートの前面に対してこれを実行しています。 変更時にフィルターは適用されません。 バックシートの番号を変更すると、フロントは調整されますが、フィルタリングされません。 数式を調整して基準をフィルタリングすると、再適用されます。 私に何ができる?
このコメントは、サイトのモデレーターによって最小化されました
これを使って
Private Sub Work_Change(ByVal Target As Range)
Activesheet.AutoFilter.ApplyFilter
End Subの
このコメントは、サイトのモデレーターによって最小化されました
これをうまく機能させることはできません。 私はマスターシートから取得しようとしていますが、名前が付いている各タブの特定のプロジェクトマネージャーに適用されるジョブのみを取得するようにしています。 また、変更を加えたときに自動更新するようにします。
このコメントは、サイトのモデレーターによって最小化されました
このコマンドはすべて偽物で何もしません。 完全に試してみてくださいが、使用しません。
このコメントは、サイトのモデレーターによって最小化されました
うまく機能し、多くの時間と混乱を節約します..本当に素晴らしいヒント..あなたの助けに感謝します
このコメントは、サイトのモデレーターによって最小化されました
このソリューションは完全に機能します。 書いてくれてありがとう! 誰かが問題を抱えている場合、考慮すべきことがいくつかあります。

まず、Worksheet_Changeイベントがシートごとに呼び出されます。 つまり、更新が必要なフィルターを含む複数のシートがある場合は、それらすべてのイベントに応答する必要があります。 ワークブック全体に対してXNUMXつのサブルーチンではなく、ワークシートごとにXNUMXつのWorksheet_Changeサブルーチン(XNUMXつの例外-以下の注を参照)。

次に、最初のコードに続いて、監視するワークシートに固有のコードモジュールにコードを配置する必要があります。 VBエディターに入ると、コードモジュールを(誤って)切り替えるのは簡単なので、データの変更を監視するシートに固有の場所に配置するように注意する必要があります。

第三に、これは未確認ですが、おそらくエラーのポイントです。 この例では、「Sheet1」、「Sheet2」などのシート名を使用しています。シートの名前を変更した場合は、コードを更新する必要がある場合があります。 この例では、Sheet7に「dfdf」という名前が付けられていることに注意してください。 そこでフィルターを更新したい場合は、を使用する必要があります。
Sheets( "dfdf")。AutoFilter.ApplyFilter
いいえ;
Sheets( "Sheet7")。AutoFilter.ApplyFilter

シートの名前を変更した例を含めて、記事を更新するとよい場合があります。


最後に、データの変更についてXNUMXつのシートを監視したいが、複数のシートのフィルターを更新したい場合は、監視しているワークシートのコードモジュールに配置されたXNUMXつのサブルーチンのみが必要です。 コードは次のようになります。

#(データの変更を監視するには、コードをワークシートに配置する必要があります)
プライベートサブワークシート_Change(ByValターゲットを範囲として)
Sheets( "Sheet1")。AutoFilter.ApplyFilter
Sheets( "Sheet2")。AutoFilter.ApplyFilter
Sheets( "Sheet3")。AutoFilter.ApplyFilter
Sheets( "Sheet4")。AutoFilter.ApplyFilter
End Subの
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、マイク、
詳細な説明ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
素晴らしい説明、ありがとう。

しかし、新しいシートが作成されたときにSheets( "Sheet3")。AutoFilter.ApplyFilterをトリガーするにはどうすればよいですか?
まだ存在しないシートにあなたが言ったコードを書くことができないので
このコメントは、サイトのモデレーターによって最小化されました
よかった。ありがとう!
このコメントは、サイトのモデレーターによって最小化されました
チャンピオンのように機能し、とてもシンプルです。 どうもありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
これは素晴らしいようです。 フィルタではなく、並べ替えで同じことを行う方法を教えてください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、クリス、
次の記事で問題を解決できる可能性があります。ご覧ください。

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

ぜひお試しください!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、それはうまくいきますが、テーブルのデータを手動で変更する場合に限ります。

別のワークシートのデータ入力から入力される「トップ3/リーダーボード」スタイルのフィルター処理されたテーブルがあります(実際には、データはテーブルに到達する前にXNUMXつのワークシートを通過します)。 データ入力ワークシートでデータが変更されると、リーダーボードテーブルの数値は更新されますが、フィルターは自動更新されません。
それを行う方法についてのアイデアはありますか?
とても感謝しております。
Alex Vetsak
このコメントは、サイトのモデレーターによって最小化されました
私は彼女に同じ問題を抱えています。 誰かが私たちを助けることができますか?
このコメントは、サイトのモデレーターによって最小化されました
私は同じ問題を抱えています。 シート2からのデータを含むシート1を自動フィルタリングしようとしています。これは、シート2ではなくシート1のデータを変更した場合にのみ機能します。
これが機能しない理由とそれを修正する方法について何か考えはありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これはうまく機能しているようですが、同じワークシート(タブ)に複数のフィルターがあると問題が発生します。 セルの範囲をテーブルに変換して、同じワークシート内で個別の複数のフィルターを使用できるようにしました。 この例は、テーブル/フィルターのXNUMXつのみを更新しているように見えます。 ワークシート内のすべてのテーブル/フィルターを更新する方法に関する提案はありますか?

多くのおかげで、

トム
このコメントは、サイトのモデレーターによって最小化されました
こんにちはトム
この記事のコードは、ワークシート内の複数のテーブルでうまく機能します。データを変更した後、他のセルをクリックする代わりに、Enterキーを押すだけです。
ぜひお試しください。
このコメントは、サイトのモデレーターによって最小化されました
terima Kasih

サンガットメンバントゥ
このコメントは、サイトのモデレーターによって最小化されました
これは、リストの選択に基づくフィルターでは機能しません https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
このコメントは、サイトのモデレーターによって最小化されました
素晴らしく、簡単に行えます。 本当にありがとう!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

このコードは、どうもありがとうございました。

ただし、小さな問題がXNUMXつあります。テーブルの一部ではないセルの値を変更すると、次のようなランタイムエラーが表示されます。

「実行時エラー「91」:

オブジェクト変数またはブロック変数が設定されていません」


デバッグまたは終了するオプションがあります。続行するオプションはグレー表示されています。 「終了」をクリックしてもコードは機能しますが、変更するたびにこのポップアップウィンドウを処理する必要があるのは非常に面倒です。

誰かがこれを分類する方法について同様の経験または提案を持っていますか?

ありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはデイビッド、
問題を解決するには、次のコードを適用します。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
エラーで次の再開
Sheets( "Sheet3")。AutoFilter.ApplyFilter
End Subの

それを試してみてください、それがあなたを助けることができることを願っています!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはスカイヤン、


私はあなたのソリューションを実装しました、そしてそれは確かに修正されました。

どうもありがとう!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは私は同じ問題を抱えていて、新しいコードを貼り付けてシートの名前を変更しましたが、何も起こらず、フィルターは更新されません
このコメントは、サイトのモデレーターによって最小化されました
ここでも同じ問題がありますが、更新された解決策はありますか?
このコメントは、サイトのモデレーターによって最小化されました
これをOffice365で完全に機能させることはできません
助言がありますか
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、助けてくれてありがとう。 何かがうまく機能していません。 これが物語です。

Sheet1には可変データがあります。 Sheet3には静的データとフィルターがあります。 「Sheet3」のフィルター基準はSheet1から取得されます。 Sheet1には、Sheet3でフィルタリングされた結果から得られたデータがあります。

Sheet3のコードは次のとおりです。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range( "A1:U14")。AdvancedFilter Action:= xlFilterCopy、CriteriaRange:= Range( "A22:U23")、CopyToRange:= Range( "A25:U26")、Unique:= False
End Subの

Sheet3で何かをするとうまくいきます。 問題はありません。 ありがとうございました!

最初はSheet1にコードがありました:

プライベートサブワークシート_Change(ByValターゲットを範囲として)
Sheets( "Sheet3")。AutoFilter.ApplyFilter
End Subの

その結果、「ランタイムエラー91、オブジェクト変数またはブロックが設定されていません」というエラーが発生しました。

コメントに基づいてコードを次のように変更しました。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
エラーで次の再開
Sheets( "Sheet3")。AutoFilter.ApplyFilter
End Subの

エラーは発生しませんが、Sheet3のデータ、つまりSheet1のデータは変更されません。 つまり、Sheet3に変更を加えても、Sheet1にフィルターを適用するイベントは発生しません。 ヒットしてもかまいませんまたは、Sheet3に設定されているSheet1フィルター基準セルを変更した後、別のセルをクリックします。

余談ですが、Sheet1に複数のセルがあり、Sheet4に加えてSheet 5と3にフィルターが必要な場合は、Sheet1のコードで次のように読み替える必要があります。

プライベートサブワークシート_Change(ByValターゲットを範囲として)
エラーで次の再開
Sheets( "Sheet3")。AutoFilter.ApplyFilter
Sheets( "Sheet4")。AutoFilter.ApplyFilter
Sheets( "Sheet5")。AutoFilter.ApplyFilter
End Subの

おかげで再び!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

これは素晴らしいコードですありがとうございます。 私が抱えている唯一の問題は、別のチャートシートのドロップダウンを使用していることです。 ドロップダウンに関連付けられているセルの値を手動で変更すると、機能します。 しかし、ドロップダウンを使用しようとすると、更新されません。 何かご意見は?
このコメントは、サイトのモデレーターによって最小化されました
私は実際に「データベース」という名前のExcelsheetにインポートされた他のExcelファイルからのデータを持っています。 次に、このデータを同じExcelファイルにインポートしますが、別のExcelSheetの「概要」にインポートします。 元のソースでデータが変更されたときに、「概要」シートにフィルターが適用されるようにします。 私を助けることができる人を前にありがとう:)。 PSは最初のExcelsheetでVBAを使用できません
ここにはまだコメントが投稿されていません
もっと読む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護