Для меня лучшая практика состоит в том, чтобы на вашем листе были только ячейки, которые вычисляют первую и последнюю строки (по-разному вы можете это сделать), а затем присваивайте этим ячейкам имя диапазона, например FirstRow и LastRow.Затем в вашей vba вы ссылаетесь на эти ячейки, чтобы сделать ваш код динамическим.
Например:
firstRow = Range("FirstRow)
lastRow = Range("lastRow")
test = range(cells(firstRow,lastRow))
- Заметьте, я не писал VBA много лет, поэтому пишу выше изпамяти, так что это может быть не совсем точно.
Конечно, вы можете делать все это полностью в VBA, используя метод xlDown, упомянутый ранее, но я предпочитаю прозрачность этого на главной странице, чтобы легко определить, если что-то сломается,