При использовании макросов для доступа или изменения данных на листах вы чаще всего будете полагаться на диапазоны. Это устраняет необходимость фактического выбора ячеек в макросе. Даже в этом случае вы можете захотеть (по какой-либо причине) на самом деле выбрать ячейки, с которыми хотите работать. Если ячейка, которую вы хотите выбрать, находится в другой книге, задача становится немного сложнее. Например, рассмотрим следующие две строки кода:

Sub CellSelect1()

Workbooks("pwd.xls").Sheets("Sheet3").Select     ActiveSheet.Range("A18").Select End Sub

Вы можете подумать, что этот макрос выберет Sheet3! A18 в книге pwd.xls. Это так, но с некоторыми оговорками. Если у вас открыто более одной книги, этот макрос приведет к ошибке, если pwd.xls не является активной в данный момент книгой. Это происходит, даже если pwd.xls уже открыт, но просто не выбран.

Такое же поведение наблюдается, даже когда вы сокращаете код выбора до одной строки:

Sub CellSelect2()

Workbooks("pwd.xls").Sheets("Sheet3").Range("A18").Select End Sub

Вы по-прежнему получаете сообщение об ошибке, за исключением случая, когда pwd.xls является активной книгой. Решение состоит в том, чтобы полностью изменить способ выполнения прыжка. Вместо использования метода Select используйте метод Goto и укажите целевой адрес для метода:

Sub CellSelect3()

Application.Goto _       Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18]

End Sub

Этот код будет работать, только если pwd.xls уже открыт, но он не обязательно должен быть активной в данный момент книгой. Если вы хотите, чтобы целевая книга прокручивалась так, чтобы указанная ячейка находилась в верхнем левом углу просматриваемого материала, вы можете указать для атрибута Scroll значение True, как показано здесь:

Sub CellSelect4()

Application.Goto _       Reference:=Workbooks("pwd.xls").Sheets("Sheet3").[A18] _       Scroll:=True End Sub

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

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

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

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

Этот совет (11947) применим к Microsoft Excel 2007, 2010, 2013 и 2016.

Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Selecting_a_Specific_Cell_in_a_Macro [Выбор конкретной ячейки в макросе].