Использование взаимодействия Excel для извлечения информации из диапазона, соответствующего критериям - PullRequest
0 голосов
/ 21 ноября 2011
oSheet = (Excel._Worksheet)xlWorkBook.ActiveSheet;   
oRng = oSheet.get_Range("T10", "T343");

Диапазон oRng содержит значения типа double.Каждая ячейка в столбце T показывает максимальное количество связанной строки.Как я могу узнать, сколько 1, 2 3 3 ... ... до 10 в этом диапазоне.Во-вторых, например, если есть 20 строк со значением = 3, мне нужно скопировать столбцы A, B, C из этих строк и сохранить их для дальнейшего использования.от 1 до 10

1 Ответ

0 голосов
/ 22 ноября 2011

Вот несколько общих замечаний, которые могут быть достаточны для начала работы:

В Excel.Range есть метод автофильтрации, который вы можете последовательно использовать для каждого интересующего вас значения (т. Е.С 1 по 10).Получив отдельные диапазоны, возвращаемые автофильтром, вы можете запросить у них интересующую вас конкретную информацию. См. C # Excel Automation: получение строк после AutoFilter () с помощью SpecialCells () не работает должным образом для проблем, связанных с этим подходом.

В качестве альтернативы, вы можете сделать что-то вроде создания простого словаря, который затем можно будет заполнять при переборе по столбцу T. Например, словарь может иметь типСловарь>.

Проходя через столбец T, вы встречаете значение в каждой ячейке.Если значение ячейки раньше не было видно, вы добавляете его в качестве нового ключа в словарь.Для связанного значения в паре ключ / значение словаря вы создаете новый список с соответствующим номером строки в качестве первого элемента.

Если значение ячейки было замечено ранее, вы ищите его в словаре,затем добавьте соответствующую строку в список, связанный с этим ключом.

В конце дня ключи вашего словаря содержат все значения, найденные в столбце T. Число строк, связанных с каждым значением, является просто числомэлементов в связанном списке.Со значениями строк в списке вы можете найти «A [значение строки]», «B [значение строки]» и «C [значение строки]».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...