Как уже упоминалось в комментариях, использование переменной Integer
нецелесообразно. Они легко переполняются, так как не могут вместить такое большое количество. Вместо этого используйте Long
тип данных.
Кроме того, вы можете захотеть переписать свой Function
в соответствии с:
Function InBetween(MyFirst As Long, MyLast As Long) As String
InBetween = Join(Application.Evaluate("TRANSPOSE(Row(" & MyFirst & ":" & MyLast & "))"), ",")
End Function
Это будет до 1048576
(В Excel 2019 как минимум)