Как использовать команду range для выбора диапазона

Как использовать команду range для выбора диапазона

У меня есть диапазон, который мне нужно выбрать. Верхние области диапазона — это A2, которые я могу получить с помощью следующей команды —

Cells(2, 1)

Нижний диапазон я могу получить, используя следующие команды:

Cells(Rows.Count, 1).End(xlUp).Row
Cells(5, Columns.Count).End(xlToLeft).Column

Как мне объединить все мои команды ячеек в нечто, что будет выбирать диапазон?

Я пытался

range=(cells(2,1)),(Cells(Rows.Count, 1).End(xlUp).Row),(Cells(5, Columns.Count).End(xlToLeft).Column).select 

но я получаю ошибку формата.

решение1

Запомнить Cells(Rows.Count, 1).End(xlUp).Rowвозвращает целое число

и

Cells(5, Columns.Count).End(xlToLeft).Columnвозвращает целое число.

Итак, вам нужно Cells(integer,integer).

В вашем нынешнем виде он выглядит так range(A2),integer,integer.select.

Вы не используете select, и если вы собираетесь использовать два целых числа, вам нужно обернуть их в cells(). И все это в range().

 Set rng = Range(Cells(2, 1), Cells((Cells(Rows.Count, 1).End(xlUp).Row), (Cells(5, Columns.Count).End(xlToLeft).Column)))

Лучшим способом сделать это было бы

Sub test()
Dim rng As Range
Dim lastrow As Integer
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim lastcol As Integer
lastcol = Cells(5, Columns.Count).End(xlToLeft).Column

 Set rng = Range(Cells(2, 1), Cells(lastrow, lastcol))

End Sub

Теперь у вас нет причин для selectвашего диапазона — просто работайте rngнапрямую.

Связанный контент