Это способ:
Sub Start()
'...
Dim DeleteRange As Range
For i = LRow To 2 Step -1
If .Cells(i, "L").Value = "" Then
If DeleteRange Is Nothing Then
Set DeleteRange = .Cells(i, "A")
Else
Set DeleteRange = Union(DeleteRange, .Cells(i, "A"))
End If
End If
Next i
DeleteRange.EntireRow.Delete
'...
End Sub
Подумайте, как вам нужно, он должен работать так, как вы говорите:
.Range("A" & "2465,A2457,A2432,A2428,A2410,A2405,A2376,A2372,A2358,A2354").EntireRow.Delete
Пока ваш диапазон не превышает 255 символов,Если он не просто проверяет, какое значение для: "A" & Join(arr, ",A")
, возможно, что-то не так или отсутствует.
Редактировать: Другой способ сделать это
Sub Start()
'...
Dim arrData
Dim j As Long
b = 1
arr = .UsedRange.Value
ReDim arrData(1 To UBound(arr), 1 To UBound(arr, 2))
For i = 1 To UBound(arr)
If arr(i, 12) <> vbNullString Then
For j = 1 To UBound(arrData, 2)
arrData(b, j) = arr(i, j)
Next j
b = b + 1
End If
Next i
.UsedRange = arrData
'...
End Sub