Часто бывает необходимо выбрать конкретную ячейку в макросе. Однако сложнее выбрать эту ячейку, если она находится в другой книге.

Например, рассмотрим следующие две строки кода:

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.

Этот совет (2791) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

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