Выбор диапазона ячеек относительно текущей ячейки (Microsoft Excel)
Иногда в макросе полезно выбирать ячейки относительно той ячейки, которая выбрана в данный момент. Например, предположим, что вы хотите выбрать первые три ячейки текущей строки. Вы можете сделать это, используя следующий код VBA:
Range(Cells(Selection.Row, 1), Cells(Selection.Row, 3)).Select
Свойство Cells возвращает объект, представляющий определенную строку и столбец (отдельную ячейку) листа. В этом случае Cells используется дважды для определения определенного диапазона ячеек. Первый экземпляр возвращает первую ячейку текущей строки, а второй возвращает третью ячейку текущей строки. Таким образом, диапазон становится ячейками с первой по третью текущей строки.
Вместо использования свойства Cells для указания местоположения вы можете использовать свойство Offset для выполнения большей части той же задачи. Рассмотрим следующий код:
Range(ActiveCell.Offset(-3, 5), ActiveCell.Offset(0, 10)).Select
При этом используется свойство Offset объекта ActiveCell, чтобы указать диапазон относительно текущей выбранной ячейки. Свойство Offset принимает аргумент, представляющий строку и столбец смещения. Отрицательное значение представляет вверх (для строки) и влево (для столбца). Положительное значение — вниз (для строки) и вправо (для столбца). Вы также можете использовать значение 0, которое представляет текущую строку или столбец.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2268) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Selecting_a_Range_of_Cells_Relative_to_the_Current_Cell [Выбор диапазона ячеек относительно текущей ячейки]
.