0

現在のオートフィルター情報を保存し、テーブルの更新後にフィルターを再適用する必要がある Excel の C# VSTO プロジェクトに取り組んでいます。単純なテキストおよび数値フィルターで動作させることができました。しかし、日付フィルターでは失敗します。

よく見ると、フィルター基準が配列の場合、基準にアクセスする方法がないように見えますか? 基本的に、myCriteria = someFilter.Criteria2単純なテキスト フィルターの文字列を返すコードは、COM 例外をスローするようになりました。

この問題に関する MSDN ドキュメント ( http://msdn.microsoft.com/en-us/office/microsoft.office.interop.excel.filter_members(v=office.14) ) はまったく役に立ちません。

マクロでフィルタリングを記録しようとしましたが、日付列を 10 月にフィルタリングするための記録されたコードは次のとおりです。

ActiveSheet.Range("$C$1:$C$6").AutoFilter Field:=1, _
                                          Operator:=xlFilterValues, _
                                          Criteria2:=Array(1, "10/31/2013")

「Criteria2」の部分は、コードで取得したいものです。

どんなアイデアでも大歓迎です!

4

1 に答える 1

0

ちょっとした裏技!

フィルターが手動で適用されたとします。フィルターを列に適用するとき、唯一のオプションは列内のアイテムです。フィルターが適用されると、フィルターによって選択されたセルだけが列に表示されます。

したがって、列をループして、表示されているセルを収集できます。次に、コレクションまたはディクショナリで重複を削除します。残っているのはフィルター基準です。

于 2013-11-05T00:05:10.407 に答える