Hi All,

I am looking to reduce the run time in the below VBA code. The data size its applied is around 5000 rows.

Is there any better way to design these to reduce the processing time.
    Dim ws3 As Worksheet
    Dim lRow3 As Long
    Set ws3 = ThisWorkbook.Sheets("Output_Report")

    With ws3
        lRow3 = .Range("G" & .Rows.Count).End(xlUp).Row
        For i = 2 To lRow3
        
        .Cells(i, 8).FormulaR1C1 = _
        "=IF(RC[-6]<>"""",CONCATENATE(RC[-1],"" "",RC[-6]),IF(RC[-7]<>"""",CONCATENATE(RC[-1],"" "",RC[-7]),CONCATENATE(RC[-1],"" ---"")))"
        
        .Cells(i, 9).FormulaR1C1 = _
        "=IFERROR(AGGREGATE(15,6,Diff_Names!C5/((Diff_Names!C2=RC[-2])*(Diff_Names!C3=RC[-4])),1),""N/A"")"

        .Cells(i, 10).FormulaArray = _
        "=IFERROR(INDEX(Diff_Names!C6,MATCH(RC[-3]&RC[-5]&RC[-1],Diff_Names!C2&Diff_Names!C3&Diff_Names!C5,0),1),""N/A"")"
        
        .Cells(i, 8).Select
        Range(Selection, ActiveCell.Offset(0, 2)).Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Application.CutCopyMode = False
        Next i
    End With