2009-12-16 2 views

Antwort

14

Sobald Sie den Bereich gefiltert haben, können Sie auf die Zellen zugreifen, die die Filterkriterien erfüllen, indem Sie die Methode Range.SpecialCells verwenden und einen Wert von 'Excel.XlCellType.xlCellTypeVisible' übergeben, um die sichtbaren Zellen zu erhalten.

Basierend auf dem Beispiel-Code, oben, sollte die sichtbaren Zellen Zugriff auf etwa wie folgt aussehen:

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

Von dort können Sie entweder jede Zelle im sichtbaren Bereich zuzugreifen, über die Sammlung ‚Range.Cells‘ oder greifen Sie auf jede Zeile zu, indem Sie zunächst über die Sammlung 'Range.Areas' auf die Bereiche zugreifen und dann jede Zeile innerhalb der 'Rows' - Sammlung für jeden Bereich iterieren. Zum Beispiel:

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

Hoffe, das hilft!

Mike

+0

Ja !! danke, dass geholfen hat ... – shahjapan

+1

Cool, froh, dass es für dich gearbeitet hat, Shahjapan. :) –

+3

Kann sich der Downvoter erklären? Dies ist eine saubere Lösung und es hat für das ursprüngliche Poster funktioniert. Gibt es etwas, das hier nicht funktioniert hat? –

Verwandte Themen