Как сравнить два больших словаря? - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу сравнить 2 словаря

  1. dEmpty - ключ (тип: диапазон), значение (тип: диапазон)

  2. dFilled -ключ (тип: значение), значение (тип: диапазон)

У меня есть такой код

For Each eRD In dEmpty.Keys
    Set eRD = dEmpty.Item(eRDesc)
    For Each e In dFilled.Keys
        Dim inStrIndexFound as long, inStrIndexFoundDeep As Long

        letterNum = InStr(e, dFilled.Item(e)),
        If letterNum > 0 Then
            newStrToFind = Mid(e, letterNum, Len(dFilled.Item(e)) + lettersCount)
        End If

        inStrIndexFoundDeep = InStr(eRD.Value, newStrToFind)
        inStrIndexFound = InStr(eRD.Value, dFilled.Item(e ))

        If inStrIndexFound > 0 Then

            If inStrIndexFoundDeep > 0 Then
                eRD.Value = dFilled.Item(e)
                Cells(eRD.Row, 1) = "No" 
            End If
            With eRD.Characters(start:=inStrIndexFound, Length:=Len(dFilled.Item(e))).Font
                SomeAction
            End With
            Exit For
        End If
    Next
Next

Как я могу улучшить и оптимизировать этот макрос, он требуеточень долго для больших словарей (например, 30 тыс. элементов в dEmpty и 10 тыс. dFilled).

Какие действия в моем коде являются самыми дорогими для макропроцессора?

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