Выбор определенной ячейки в макросе (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.
Этот совет (11947) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Selecting_a_Specific_Cell_in_a_Macro [Выбор конкретной ячейки в макросе]
.