I am very much a novice with VBA but i have managed to write code that runs. My issue is that when i run it with many thousands of rows it basically grinds to a halt and nothing happens for well over an hour (when i run for 150K rows). On top of my code i have added: 

I have also attempted to avoid using .select whenever i could. Is there anything that i'm missing or is there a way that i could improve my code? Since i've pasted various code i'm sure i've done something wrong. 

```
Sub Eng11()

    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Dim Last As Long
    Dim i As Long
    Dim wkb1 As Workbook
    Dim sht1 As Worksheet
    Dim wkb2 As Workbook
    Dim sht2 As Worksheet
    Dim lastrow As Long
    Dim sPath As String, sFile As String
    Dim wb As Workbook
    Dim x As Long
    Dim ws As Worksheet

    sPath = "C:\Users\nascd\Downloads\Pronto Master\"
    sFile = sPath & Sheets("Sheet 1").Range("J2").Text

    Set wkb1 = ThisWorkbook
    Set wkb2 = Workbooks.Open(sFile)
    Set sht1 = wkb1.Sheets("Data Table")
    Set sht2 = wkb2.Sheets("Sheet1")

    Set ws = sht2

    Last = Cells(Rows.Count, "AX").End(xlUp).Row
    For i = Last To 2 Step -1
        If (Cells(i, "AZ").Text) = (Cells(i, "AB").Text) And _
            (Cells(i, "BA").Text) = (Cells(i, "AC").Text) And _
            (Cells(i, "AY").Text) = "C" And (Cells(i, "AA").Text) = "E" Then

            Cells(i, "AX").Value = Cells(i, "Z").Value
            Cells(i, "AY").Value = Cells(i, "AA").Value
            Cells(i, "AZ").Value = Cells(i, "AB").Value
            Cells(i, "BA").Value = Cells(i, "AC").Value
        End If
    Next i

    For i = Last To 2 Step -1
        If (Cells(i, "AZ").Text) = (Cells(i, "AB").Text) And _
            (Cells(i, "BA").Text) = (Cells(i, "AC").Text) And _
            (Cells(i, "AY").Text) = "C" And (Cells(i, "AA").Text) = "T" Then

            Cells(i, "AX").Value = Cells(i, "Z").Value
            Cells(i, "AY").Value = Cells(i, "AA").Value
            Cells(i, "AZ").Value = Cells(i, "AB").Value
            Cells(i, "BA").Value = Cells(i, "AC").Value
        End If
    Next i

    For i = Last To 2 Step -1
        If (Cells(i, "AY").Text) = "1" And (Cells(i, "AA").Text) = "E" Then

            Cells(i, "AX").Value = Cells(i, "Z").Value
            Cells(i, "AY").Value = Cells(i, "AA").Value
            Cells(i, "AZ").Value = Cells(i, "AB").Value
            Cells(i, "BA").Value = Cells(i, "AC").Value
        End If
    Next i

    For i = Last To 2 Step -1
        If (Cells(i, "AY").Text) = "2" And (Cells(i, "AA").Text) = "E" Then

            Cells(i, "AX").Value = Cells(i, "Z").Value
            Cells(i, "AY").Value = Cells(i, "AA").Value
            Cells(i, "AZ").Value = Cells(i, "AB").Value
            Cells(i, "BA").Value = Cells(i, "AC").Value
        End If
    Next i
End Sub

```