У меня есть блок кода, который слишком долго обрабатывается для некоторых файлов.Меньшие файлы (меньше строк данных) работают нормально, но как только я добираюсь до 150-300, он начинает замедляться (иногда я думаю, что весь процесс фактически просто зависает), и мне иногда приходится запускать это на файлах с до6000.
Я хочу подключить функцию VLookup()
в .FormulaR1C1
для нескольких ячеек.Я знаю, что могу установить весь диапазон сразу, используя .Range("J2:J" & MaxRow)
.Однако я проверяю блок ячеек, чтобы проверить значение этих ячеек. ЕСЛИ они пусты, ТО Я хочу применить формулу.Если у этих ячеек уже есть значения, я не хочу их менять, поэтому я не думаю, что весь диапазон будет работать для меня (по крайней мере, я не смог сделать это правильно).
Private Sub PullMIAFinalizedData(NewMIARep As Worksheet, MaxRow As Long, wkbFinalized As Workbook)
Dim wksFinalized As Worksheet
Dim lCount As Long
Dim sVLookupJBlock As String
Dim sVLookupKBlock As String
Application.Calculation = xlCalculationManual
sVLookupJBlock = "=IF(ISERROR(" & _
"VLOOKUP(RC1,'[" & wkbFinalized.Name & "]" & wksFinalized.Name & "'!C1:C13,13,FALSE))," & _
Chr(34) & Chr(34) & _
",VLOOKUP(RC1,'[" & wkbFinalized.Name & "]" & wksFinalized.Name & "'!C1:C13,13,FALSE))"
sVLookupKBlock = "=IF(ISERROR(" & _
"VLOOKUP(RC1,'[" & wkbFinalized.Name & "]" & wksFinalized.Name & "'!C1:C3,3,FALSE))," & _
Chr(34) & Chr(34) & _
",VLOOKUP(RC1,'[" & wkbFinalized.Name & "]" & wksFinalized.Name & "'!C1:C3,3,FALSE))"
For Each wksFinalized In wkbFinalized.Sheets
ShowAllRecords wksFinalized 'Custom Function to unhide/unfilter all data
With NewMIARep
For lCount = 2 To MaxRow
If .Range("J" & lCount).value = "" And .Range("K" & lCount).value = "" Then
.Range("J" & lCount).FormulaR1C1 = sVLookupJBlock
.Range("K" & lCount).FormulaR1C1 = sVLookupKBlock
Application.Calculate
With .Range("J" & lCount & ":K" & lCount)
.value = .value
End With
End If
Next lCount
.Range("J2:J" & MaxRow).NumberFormat = "mm/dd/yyyy"
End With
Next wksFinalized
Application.Calculation = xlCalculationAutomatic
End Sub
Я просто застрял с этим?