После того, как вы отфильтровали диапазон, вы можете получить доступ к ячейкам, которые соответствуют критериям фильтра, используя метод Range.SpecialCells , передав значение Excel.XlCellType.xlCellTypeVisible, чтобы получить видимые клетки.
На основании приведенного выше примера кода доступ к видимым ячейкам должен выглядеть примерно так:
Excel.Range visibleCells = sheet.UsedRange.SpecialCells(
Excel.XlCellType.xlCellTypeVisible,
Type.Missing)
Оттуда вы можете получить доступ к каждой ячейке в видимом диапазоне через коллекцию Range.Cells или получить доступ к каждой строке, сначала получив доступ к областям через коллекцию Range.Areas, а затем итерируя каждую строку в пределах Коллекция 'Rows' для каждой области. Например:
foreach (Excel.Range area in visibleCells.Areas)
{
foreach (Excel.Range row in area.Rows)
{
// Process each un-filtered, visible row here.
}
}
Надеюсь, это поможет!
Mike