Метод Excel Interop "FindAll" - PullRequest
       13

Метод Excel Interop "FindAll"

5 голосов
/ 11 ноября 2009

Это может быть повторяющийся вопрос, но на самом деле не знаю, как еще произнести название.

Кто-нибудь смог найти метод в библиотеке взаимодействия Excel, который предоставляет функцию «Найти все» из диалогового окна «Найти и заменить»?

Есть Find, FindNext и FindPrevious, но нет FindAll, что странно.

Пока я так делаю, мой первый удар, так сказать ...

    //FindRange() is an extension method which wraps Worksheet.Cells.Find()
    Range start = sheet.FindRange(searchText, 
                                XlLookAt.xlPart, 
                                XlSearchOrder.xlByColumns, 
                                XlSearchDirection.xlNext);

    HashSet<int> matches = new HashSet<int>();

    Range next = start;

    while (true)
    {
        next = sheet.Cells.FindNext(next.get_Offset(1, 0));
        if (!matches.Add(next.Row))
            break;
    }

Есть мысли?

1 Ответ

3 голосов
/ 11 ноября 2009

Боюсь, подход, который вы используете, - это подход, который я использовал и в прошлом. Нет метода FindAll, поэтому мы можем только предположить, что это делает и Excel!

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