Datatableをフィルタリング後、元に戻す方法

やりたいこと
フィルタリングをかけてデータ処理したあと、処理したデータは残したままフィルタリングする前のデータテーブルをExcelに戻したいです

現状フロー
①範囲を読み込みでdatatable変数に格納しています。
②データテーブルをフィルタリング
③フィルタリングされたえデータを各行繰り返しで処理
④ ③で処理したデータをExcelに戻す

問題
④の、Excelに戻すときにフィルタリングされたデータだけ戻すことになってしまう

以上の、問題を解決した上でやりたいことを実現する方法はありますでしょうか。

フィルタリングのモードに、保持と除外があるので、読み込んだDataTableにフィルタを掛けて、そのDataTableに出力するのではなく、保持用のDataTabel.除外用のDataTableにそれぞれ出力させます。

最終的にデータテーブルのマージアクティビティで、1つのDataTableにまとめてあげたのち、シートに書き戻してあげればいいですね。

但し、行の並びは不定になるので、必要でしたら、行番号を追加してあげてからフィルタリングし、最終的に1つのDataTableにしたのち並び替えをしてあげる必要はありますね。

マージする方法は並びが変わってしまうので使えないと思っていました。
行番号の追加やマージ後の並び替え、行番号削除が必要となると、VBAで実装したほうがシンプルな気がします。

こんにちは

データ量にもよるかもしれませんが、そもそもフィルターをせずに、繰り返し各行ですべて処理
そのループ内で、条件分岐を用い、フィルター条件に合致するものだけを処理すれば良いように
思います。

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.