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

Range("A4").Select

Это замечательно, если вы всегда хотите перейти к ячейке A4, но ужасно, если вы хотите перейти к первой ячейке любой строки, в которой вы находитесь.

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

Range("A" & (ActiveCell.Row)).Select

VBA определяет текущую строку и ставит ее вместе с буквой «A»

указатель, и предлагает ссылку на ячейку, которая работает с методом Range.

Другой способ, который вы можете использовать, — это задействовать свойство Cells следующим образом:

Cells(Application.ActiveCell.Row, 1).Select

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

Другой подход (который дает тот же результат) — использовать объект Range в сочетании со свойством Cells, как показано здесь:

Range(Cells(Selection.Row, 1).Address).Select

Selection.Row дает номер строки текущего выделения. Свойство Address метода Cells возвращает адрес конкретной ячейки в формате A $ 1 $. Затем этот адрес используется в качестве параметра для объекта Range, а фактическая ячейка выбирается методом Select.

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

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

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

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

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

link: / excel-Selecting_a_Cell_in_the_Current_Row [Выбор ячейки в текущей строке].