Excel vba - xlDown

Код ниже пытается вставить выбранный диапазон (передается какrng) до конца рабочего листа. Это работает, если уже есть 2 строки (A1, A2).

Sub copyRow(rng As Range, ws As Worksheet)
    Dim newRange As Range
    Set newRange = ws.Range("A1").End(xlDown).Offset(1, 0)
    rng.Copy
    newRange.PasteSpecial (xlPasteAll)
End Sub

Таким образом, если A1 и A2 присутствуют и если вы вызываете этот метод 100 раз, он вставляет после них 100 строк. Но, если нет строк или только A1, он просто перезаписывает A2. Я мог видеть Excel писать в той же строке (перезаписать)

Похоже, что-то связанное с тем, как xlDown вычисляет, если есть менее 2 строк, не уверен.

Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос