Znajdź wszystkie mecze w skoroszycie za pomocą Excel VBA

Próbuję napisaćVBA procedura, która weźmie ciąg, przeszuka dany skoroszyt programu Excel i zwróci mi wszystkie możliwe dopasowania.

Obecnie mam implementację, która działa, ale jest bardzo powolna, ponieważ jest to pętla podwójna dla. Oczywiście zbudowany w ExceluFind funkcja jest „zoptymalizowana” w celu znalezienia pojedynczego dopasowania, ale chciałbym, aby zwróciła tablicę początkowych dopasowań, do których mogę następnie zastosować dalsze metody.

Opublikuję pseudokod tego, co już mam

For all sheets in workbook
    For all used rows in worksheet
        If cell matches search string
            do some stuff
        end
    end
end

Jak już wcześniej wspomniano, ta podwójna pętla powoduje, że wszystko działa bardzo powoli, więc staram się tego pozbyć, jeśli to możliwe. Jakieś sugestie?

AKTUALIZACJA

Chociaż poniższe odpowiedzi poprawiłyby moją metodę, skończyło się na czymś nieco innym, ponieważ musiałem wielokrotnie wykonywać wiele zapytań.

Zamiast tego postanowiłem zapętlić wszystkie wiersze w moim dokumencie i utworzyć słownik zawierający klucz dla każdego unikalnego wiersza. Wartość, którą to wskazuje, będzie wtedy listą możliwych dopasowań, więc gdy zapytam później, mogę po prostu sprawdzić, czy istnieje, a jeśli tak, po prostu uzyskać szybką listę dopasowań.

Zasadniczo po prostu wykonuję jeden wstępny przegląd, aby przechowywać wszystko w zarządzalnej strukturze, a następnie odpytuję tę strukturę, w której można to zrobićO(1) czas

questionAnswers(7)

yourAnswerToTheQuestion