Я работаю с диапазонами данных переменной длины. Поэтому, чтобы получить весь диапазон, я сделал короткую функцию Excel:
Function UntilBlank(StartCell As Range)
Dim lastCell As Range
Dim currentCell As Range
Set lastCell = StartCell.Cells(1, 1)
Set currentCell = StartCell.Offset(1, 0)
While Not (IsEmpty(currentCell.Cells(1, 1)))
Set lastCell = lastCell.Offset(1, 0)
Set currentCell = lastCell.Offset(1, 0)
Wend
UntilBlank = Range(StartCell.Cells(1, 1), lastCell)
End Function
Это отлично работает в большинстве случаев. Однако когда я пытаюсь использовать эту функцию в OFFSET в качестве первого параметра, OFFSET просто возвращает одну ячейку #VALUE.
Я ожидаю, что возврат моей функции будет работать так же, как и любой другой диапазон. Адрес возврата выглядит идеально, я просто не понимаю, почему у смещения возникают проблемы с получением этой ссылки на диапазон и ее обычным смещением.
Еще три буквы решат вашу проблему
Set UntilBlank = Range(StartCell.Cells(1, 1), lastCell)
Теперь функция возвращает диапазон вместо массива значений.