I know this macro is not the most efficient macro just because of the loops and how long it takes my machine to run. Is there another way to write this so it doesnt make my 5yr+ old machine just come to a halt while running it?


' Lock Open Walls Cells - Partition Walls - Framed Openings - Below Eave Canopies
    Private Sub lockCells_OpenWalls()
            Dim i As Long
            Dim j As Long
            Dim k As Long
    ' Lock Framed Opening Cells
        Sheets("Gen_3").Activate
        ActiveSheet.Unprotect Password:="MyPassword"
        For i = 278 To 341
            If Range("G" & i).Value = "" Or _
                Range("G" & i).Value = "n/a" Then
                    Range("O" & i & ":V" & i).Locked = True
                    Range("X" & i & ":AF" & i).Locked = True
                    End If
            If InStr(Range("G" & i).Value, "Open") Then
                Range("O" & i & ":V" & i).Locked = False
                Range("X" & i & ":AF" & i).Locked = True
                End If
            If InStr(Range("C" & i).Value, "Front") Or _
                InStr(Range("C" & i).Value, "Back") Then
                    Range("X" & i & ":AF" & i).Locked = True
                    End If
            If Range("x" & i).Value = "Select Endwall Type" Then
                Range("X" & i & ":AF" & i).Locked = False
                End If
            Next i
    ' Lock Framed Opening Cells
        For j = 494 To 597
            If Range("G" & j).Value = "" Then
                Range("N" & j & ":AH" & j).Locked = True
                End If
            Next j
    ' Lock Below Eave Canopies
        For k = 346 To 473
            If Range("G" & k).Value = "" Or _
                Range("G" & k).Value = "n/a" Or _
                InStr(Range("C" & k).Value, "Soffit") Then
                    Range("Q" & k & ":AH" & k).Locked = True
                    End If
                Range("U" & k).Locked = True
            Next k
End Sub