2012-04-25 8 views
2

に優れ、私は可能であるかどうかを知りたいと思い、この高度なフィルタは、私はExcelシートにフィルタを行う必要があり、C#

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; 

のようなフィルタを行う私は、このコードは動作しないことを知っているけどフィルタパラメータでダイナミックリストを作成したいと考えています。 誰かに教えてもらえますか?

答えて

0

私はリストを渡すことについてはよく分からないが、あなたは間違いなく配列を渡すことができます。

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

あなたはXlAutoFilterOperatorhereの異なるメンバーを見つけることができます。

また、それは少し物事を遅くする可能性があるとして、シートに最後に使用した行を探してみてくださいではなく、列全体のフィルタを設定するかもしれません:

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; 
関連する問題