2009-12-16 5 views

Odpowiedz

14

Po przefiltrowaniu zakresu można uzyskać dostęp do komórek, które spełniają kryteria filtru, korzystając z metody Range.SpecialCells, przekazując wartość "Excel.XlCellType.xlCellTypeVisible" w celu uzyskania widocznych komórek.

Bazując na przykład kodu powyżej, dostępu do widocznych komórek powinien wyglądać mniej więcej tak:

Excel.Range visibleCells = sheet.UsedRange.SpecialCells(
           Excel.XlCellType.xlCellTypeVisible, 
           Type.Missing) 

Stamtąd można też uzyskać dostęp do każdej komórki w zakresie widzialnym, poprzez kolekcji „” Range.Cells lub uzyskać dostęp do każdego wiersza, najpierw uzyskując dostęp do obszarów za pośrednictwem kolekcji "Range.Areas", a następnie iterując każdy wiersz w kolekcji "Wiersze" dla każdego obszaru. Na przykład:

foreach (Excel.Range area in visibleCells.Areas) 
{ 
    foreach (Excel.Range row in area.Rows) 
    { 
     // Process each un-filtered, visible row here. 
    } 
} 

Mam nadzieję, że to pomoże!

Mike

+0

Tak !! dzięki, które pomogły ... – shahjapan

+1

Fajnie, cieszę się, że zadziałało dla ciebie, Shahjapan. :) –

+3

Czy dalsi tłumaczą się? To jest czyste rozwiązanie i działa na oryginalny plakat. Czy jest coś, co nie działa tutaj? –