Не уверен, что именно вы ищете, но, возможно, это поможет. Приведенный ниже код использует функцию «CountA» для проверки того, сколько ячеек в указанном диапазоне содержит данные (используя A1: A10, но может быть любым диапазоном), а затем копирует это количество ячеек с листа sheet1 на лист sheet2. Это будет работать только в том случае, если данные непрерывны (между ними нет пустых ячеек).
На листе 1 поместите несколько цифр в ячейки A1: A5, например ...
Sub DynamicRange()
Dim CountA_Range As Range, intCountA_Result As Integer, CopyRange As Range
Set CountA_Range = Worksheets(1).Range("A1:A10")
intCountA_Result = WorksheetFunction.CountA(CountA_Range)
Set CopyRange = ThisWorkbook.Worksheets(1).Rows("1:" & intCountA_Result)
CopyRange.Copy
Worksheets(2).Rows("1").PasteSpecial (xlPasteValues)
End Sub