Выбор определенной ячейки в макросе (Microsoft Excel)
Часто бывает необходимо выбрать конкретную ячейку в макросе. Однако сложнее выбрать эту ячейку, если она находится в другой книге.
Например, рассмотрим следующие две строки кода:
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 [Выбор конкретной ячейки в макросе]
.