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

ActiveCell.Offset(2, 1).Select

Если вы хотите выбрать больший диапазон, чем одна ячейка, вы можете объединить метод смещения с методом адреса, чтобы найти фактические адреса ячеек, а затем использовать свои результаты для фактического выбора самого диапазона. Например, вы можете выбрать диапазон, который начинается двумя строками вниз и одним столбцом справа, но затем расширяется на четыре строки и три столбца. Вы можете сделать это следующим образом:

StartCell = ActiveCell.Offset(2, 1).Address EndCell = ActiveCell.Offset(5, 3).Address Range(StartCell, EndCell).Select

Альтернативный метод решения той же задачи — использование метода изменения размера. В этом методе вы сначала должны выбрать верхнюю левую ячейку желаемого диапазона (как это было сделано при первом использовании смещения выше), а затем использовать «Изменить размер», чтобы изменить размер выделения. Вот как это делается:

ActiveCell.Offset(2, 1).Select Selection.Resize(4, 3).Select

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (7016) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Relative_VBA_Selections [Относительный выбор VBA].