Соответствие огромному набору данных
Я довольно хорошо знаком с миром VBA, но я действительно хочу улучшить свои навыки. У меня есть случай, в котором я хотел бы сопоставить отмену с новым бизнесом, чтобы увидеть, что мы получим от нашего отброшенного бизнеса как новые заказы.
Соответствие является следующим. Будет указана переменная с именем = Fastighet, которая будет принимать значение (означает недвижимость на шведском языке) из удаленного бизнеса и поиска в бизнесе новых заказов. если они совпадают с одной и той же недвижимостью, то проверит дату нового бизнеса, если это +/- 90 дней и принесет мне что-то под названием "Service-ID". Приведенные ниже макросы работают и дают мне результат, но каждый раз требуется 3 часа, чтобы завершить сопоставление, поскольку оно соответствует 2200 строкам в отброшенном бизнесе и 25000 строкам новых заказов!
мой вопрос: есть ли способ сделать это быстрее? Я ценю любую помощь или советы
Sub MatchingNedVSUpp()
Dim LRow, LRow2, i, n, serviceID As Long
Dim Fastighet As String
LRow = Sheet5.Range("A" & Rows.Count).End(xlUp).Row
LRow2 = Sheet6.Range("A" & Rows.Count).End(xlUp).Row
For i = 3 To LRow
Fastighet = Sheet5.Range("CA" & i).Value
For n = 3 To LRow2
serviceID = Sheet6.Range("B" & n).Value
If Sheet6.Range("BH" & n).Value = Fastighet And Sheet6.Range("AH" & n) <= Sheet5.Range("BM" & i) And Sheet6.Range("AH" & n) >= Sheet5.Range("BL" & i) And Sheet5.Application.WorksheetFunction.CountIf(Range("BU:BU"), serviceID) = 0 Then
Sheet6.Range("B" & n).Copy
Sheet5.Range("BU" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
Next n
Next i
End Sub