Проверьте, равно ли число строк нулю или меньше нуля с помощью оператора if:
Dim numRows As Long
With Sheets("Yoursheetname")
numRows = .Cells(.Rows.Count, "A").End(xlUp).Row
If Not numRows <= 1 Then .Cells(1, 12).AutoFill Destination:=.Range(.Cells(1, 12), .Cells(numRows, 12)), Type:=xlFillDefault
End With
Согласно моему комментарию, вы также можете использовать On Error Resume Next
:
Dim numRows As Long
numRows = Cells(Rows.Count, "A").End(xlUp).Row
On Error Resume Next 'turn of error handling for the next statement
Selection.AutoFill Destination:=Range(Cells(1, 12), Cells(numRows, 12)), Type:=xlFillDefault
On Error GoTo 0 'turn error handling back on
Edit: согласно комментарию @ Peh, первый предпочтителен, так как отключение обработки ошибок (даже для одного оператора) может стать проблематичным c, если ваш код имеет (или разрабатывает) какие-либо другие проблемы.