Вы не должны иметь AB3
, просто AB
.Ссылка Range
должна включать номера первой и последней строк.Вы добавляете дополнительные 3 перед номером последней строки, что приводит к дополнительным 3000 строкам.
Range("Y3:AB" & LastRow).FillDown
Дополнительно, как указано @ JohnColeman , используя CurrentRegion.Rows
не надежный способ получить последний ряд.Это может привести к непредвиденным результатам, если ваши данные не начинаются со строки 1.
Вместо этого вы можете использовать End(xlUp)
(также предлагается @ Darrell H ):
With Sht
LastRow = .Cells(.Rows.Count, "X").End(xlup).Row
End With