Hello all,
I am trying to improve the speed of my loop macro because my loop macro is very slow to run a large database, over 3000 rows.
Is there any way to improve my loop macro? I have attached an example.
I would be appreciated with your help. Thanks.
Sub Sample()
Dim lastRow As Integer
'Dim SourceWB As Workbook: Set PAASourceWB = Workbooks.Open("C:\Users\user\Desktop\Src.xlsx")
'SourceWB.Sheets("Src").Copy Before:=ThisWorkbook.Sheets("PROCESS")
'SourceWB.Close
Dim TargetWB As Workbook: Set PAATargetWB = Workbooks.Open("C:\Users\user\Desktop\VBA_Help_Sample.xlsm")
Dim lRowCount As Integer, i As Integer
Dim v As String
v = "1st_Run"
Application.ScreenUpdating = False
Application.Calculation = xlAutomatic
Sheets("Tgt").Range("B6:XFD1048576").Delete Shift:=xlUp
With ThisWorkbook
lRowCount = Sheets("Src").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lRowCount
.Sheets("PROCESS").Range("i_Num") = i
.Sheets("PROCESS").Range("B6:H6").Value = .Sheets("Src").Range("A" & i + 1 & ":G" & i + 1).Value
.Sheets("Tgt").Range("F" & i + 5 & ":J" & i + 5).Value = .Sheets("PROCESS").Range("D4:H4").Value
.Sheets("Tgt").Range("B" & i + 5) = v
.Sheets("Tgt").Range("C" & i + 5) = .Sheets("PROCESS").Range("F3").Value
.Sheets("Tgt").Range("D" & i + 5) = .Sheets("PROCESS").Range("C6").Value
.Sheets("Tgt").Range("E6:E" & i + 5).Formula = _
"=CONCAT(B6," & Chr(34) & "|" & Chr(34) & ",C6," & Chr(34) & "|" & Chr(34) & ",D6)"
Next i
End With
Application.ScreenUpdating = True
Application.Calculation = xlManual
End Sub
Bookmarks