3

Excel シートでフィルターを実行する必要があります。このようなフィルターを実行できるかどうかを知りたいです

 List<string> listFilter = new List<string>();
            listFilter.Add("3");
            listFilter.Add("4");

            object _missing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Excel.Range oRng1 = xlWorkSheet.Range["A1", "A1048576"];
            oRng1.AutoFilter(1, listFilter, Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd, _missing, true);
            oRng1.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

このコードが機能しないことはわかっていますが、フィルター パラメーターで動的リストを実行したいと考えています。誰かが私にこれを行う方法を教えてもらえますか?

4

1 に答える 1

2

リストを渡すかどうかはわかりませんが、配列を渡すことは間違いありません。

string[] listfilter = new string[] { "2", "3", "4" };
xlWorksheet.get_Range("A1", "B50").AutoFilter(1, listfilter, Excel.XlAutoFilterOperator.xlFilterValues,
    Missing.Value, true);

XlAutoFilterOperator ここのさまざまなメンバーを見つけることができます。

少し遅くなる可能性があるため、列全体にフィルターを設定するのではなく、シートで最後に使用された行を見つけようとすることも考えられます。

int lastRow = xlWorksheet.Range["A:A"].Find("*", Missing.Value, Missing.Value, Missing.Value,
    Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlPrevious, false, Missing.Value,
    Missing.Value).Row;
于 2012-04-26T04:57:19.217 に答える