Я пытаюсь найти значение ключа «PR-данные», глядя в «PR-данные Windchill». Найдя, я хотел бы скопировать 6-ю ячейку справа от найденной в "PR Data Windchill" и вставить обратно в исходный ключ в 6-й ячейке справа в "PR-данных".
Я пытался использовать Application.VLookup и, хотя он работал, он был медленным. Я работаю с диапазонами данных длиной от 50 000 до 100 000 элементов.
Function Update()
Dim Master As Worksheet
Dim Slave As Worksheet
Dim lrS As Long
Dim i As Long, m, SLookup As Range
Set Master = ThisWorkbook.Worksheets("PR Data Windchill")
Set Slave = ThisWorkbook.Worksheets("PR Data")
Set SLookup = ThisWorkbook.Worksheets("PR Data Windchill").Columns(1)
lrS = Slave.Cells(Slave.Rows.Count, "A").End(xlUp).Row
With Slave
For i = 7 To lrS
Select Case .Range("G" & i)
Case Is = "" '"Open", "Under Review", "Accepted"
m = Application.Match(.Rows(i).Cells(1).Value, SLookup, 0)
.Rows(i).Cells(1).Offset(0, 6).Copy Slave.Rows(i).Cells(1).Offset(0, 6)
End Select
Next i
End With
Application.CutCopyMode = False
MsgBox ("Status Update Complete")
End Function