Всем привет. Нужна ваша помощь.
В модуле VBA конкретной ячейке присваивается формула. После исполнения VBA-кода формула не срабатывает, а в соотв. ячейке имеет место «Ошибка-недопустимое имя».
Фрагмент кода:
Код |
---|
Set SW_1 = Application.ThisWorkbook.Worksheets(Sheet_Name) ..... SW_1.Range(SW_1.Cells(i + di - 1, stolb_1_symvol_del + 5).Address).Formula = "=СУММ(E492:E505)" |
Результат на скриншоте-02.
НО если зайти в строку формул при активной (ошибочной) ячейке и нажать Enter, то формула срабатывает (см. на скриншоте-02 красную поз.2)
Я конечно понимаю, что можно по очереди «пройтись» по всем этим ячейкам с «Ошибкой» понажимать Enter, Но это не устраивает хотя бы потому, что в таблице их много и это не рационально.
Еще пробовал так:
Код |
---|
Application.ReferenceStyle = xlR1C1 SW_1.Range(SW_1.Cells(i + di - 1, stolb_1_symvol_del + 5).Address).FormulaR1C1 = "=СУММ(R[-1]C[-1]:R[-" & sum_n2 & "]C[-1])" Application.ReferenceStyle = xlA1 |
И так:
Код |
---|
Application.ReferenceStyle = xlA1 SW_1.Range(SW_1.Cells(i + di - 1, stolb_1_symvol_del + 5).Address).Formula = "=СУММ(E492:E505)" |
Сам не могу допереть. Подскажите — в чём нюанс?
Для автоматизации повторяющихся задач в Microsoft Excel можно быстро записать макрос. Предположим, у вас есть даты в различном формате и вы хотите применить ко всем из них один формат. Это можно сделать с помощью макроса. Вы можете записать макрос, который применяет нужный формат, а затем запускать его при необходимости.
При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.
Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».
Запись макроса
Перед записью макросов полезно знать следующее:
-
Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
-
Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
-
В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Чтобы записать макрос, следуйте инструкциям ниже.
-
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
-ИЛИ-
Нажмите ALT+T+M+R.
-
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
-
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.
-
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса . При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (Personal.xlsб), если она еще не существует, и сохраняет макрос в этой книге.
-
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
-
Чтобы начать запись макроса, нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .
-ИЛИ-
Нажмите ALT+T+M+R.
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.
Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Задача |
Описание |
Изменение параметров безопасности макросов в Excel |
Сведения о параметрах безопасности макросов и их значении. |
Запуск макроса |
Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги. |
Изменение макроса |
С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге. |
Копирование модуля макроса в другую книгу |
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic. |
Назначение макроса объекту, фигуре или графическому элементу |
|
Назначение макроса кнопке |
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту. |
Назначение макроса для элемента управления на листе |
Вы можете назначать макросы формам и элементам ActiveX на листе. |
Включение и отключение макросов в файлах Office |
Узнайте, как включать и отключать макросы в файлах Office. |
Открытие редактора Visual Basic |
Нажмите клавиши ALT+F11. |
Поиск справки по использованию редактора Visual Basic |
Узнайте, как найти справку по элементам Visual Basic. |
Работа с записанным кодом в редакторе Visual Basic (VBE)
С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.
Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.
Запись макроса
Перед записью макросов полезно знать следующее:
-
Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
-
Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
-
В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.
-
Перейдите в Excel > параметры…> ленты & панель инструментов.
-
В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Чтобы записать макрос, следуйте инструкциям ниже.
-
На вкладке Разработчик нажмите кнопку Запись макроса.
-
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
-
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.
-
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.
-
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести содержательное описание со всеми сведениями, которые могут быть полезны вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
-
Чтобы начать запись макроса, нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик щелкните Остановить запись.
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.
Примечание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Задача |
Описание |
Включение и отключение макросов |
Узнайте, как включать и отключать макросы в Excel для Mac. |
Копирование модуля макроса в другую книгу |
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic. |
Назначение макроса объекту, фигуре или графическому элементу |
|
Назначение макроса кнопке |
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту. |
Назначение макроса для элемента управления на листе |
Вы можете назначать макросы формам и элементам ActiveX на листе. |
Открытие редактора Visual Basic |
На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic. |
Поиск справки по использованию редактора Visual Basic |
Узнайте, как найти справку по элементам Visual Basic. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Содержание
- Исправление ошибки #ИМЯ?
- Дополнительные сведения
- Причина 1. Неправильное имя функции
- Причина 2. Отключенные макросы
- Автоматизация задач с помощью средства записи макросов — Excel
- Запись макроса
- Работа с макросами, записанными в Excel
- Работа с записанным кодом в редакторе Visual Basic (VBE)
- Запись макроса
- Работа с макросами, записанными в Excel
- Дополнительные сведения
Исправление ошибки #ИМЯ?
Обычно ошибка #ИМЯ? возникает из-за опечатки в имени формулы. Рассмотрим пример:
Важно: Ошибка #ИМЯ? означает, что нужно исправить синтаксис, поэтому если вы видите ее в формуле, устраните ее. Не скрывайте ее с помощью функций обработки ошибок, например функции ЕСЛИОШИБКА.
Чтобы избежать опечаток в именах формулы, используйте мастер формул в Excel. Когда вы начинаете вводить имя формулы в ячейку или строку формул, появляется раскрывающийся список формул с похожим именем. После ввода имени формулы и открывающей скобки мастер формул отображает подсказку с синтаксисом.
Мастер функций также позволяет избежать синтаксических ошибок. Выделите ячейку с формулой, а затем на вкладке Формула нажмите кнопку Вставить функцию.
Excel автоматически запустит мастер.
Щелкните любой аргумент, и Excel покажет вам сведения о нем.
Ниже приведены другие причины возникновения ошибки #ИМЯ? .
Если формула содержит ссылку на имя, которое не определено в Excel, вы увидите ошибку #ИМЯ? .
В следующем примере функция СУММ ссылается на имя Прибыль, которое не определено в книге.
Решение. Определите имя в Диспетчере имен, а затем добавьте его в формулу. Вот как это сделать:
Если в электронной таблице уже есть данные и вы хотите назначить имя определенным ячейкам или диапазону, сначала выделите ячейки в электронной таблице. Если вы хотите создать диапазон, можно пропустить этот шаг.
На вкладке Формулы в группе Определенные имена нажмите кнопку Присвоить имя и выберите команду Присвоить имя.
Введите уникальное имя.
В качестве области выберите лист или всю книгу.
При желании введите примечание.
Нажмите кнопку ОК.
Далее нужно добавить имя в формулу.
Курсор должен быть в том месте формулы, куда вы хотите добавить созданное имя.
На вкладке Формулы в группе Определенные имена нажмите кнопку Использовать в формуле и выберите нужное имя.
Подробнее об использовании определенных имен см. в статье Определение и использование имен в формулах.
Если в формуле неправильно указано определенное имя, вы увидите ошибку #ИМЯ? .
Допустим, что в электронной таблице было создано определенное имя Прибыль. В приведенном ниже примере имя указано неправильно, поэтому функция по-прежнему выдает ошибку #ИМЯ? .
Решение. Исправьте опечатку и повторите попытку.
Совет: Вместо того чтобы вручную вводить определенные имена в формулах, предоставьте это Excel. На вкладке Формулы в группе Определенные имена нажмите кнопку Использовать в формуле и выберите нужное имя. Excel добавит его в формулу.
При добавлении текстовых значений в формулы необходимо заключать их в кавычки, даже если они содержат только пробел. Если в синтаксисе нет двойных кавычек, появится сообщение об ошибке #ИМЯ. См. пример ниже.
В этом примере не хватает кавычек до и после слова имеет, поэтому выводится сообщение об ошибке.
Решение. Проверьте, нет ли в формуле текстовых значений без кавычек.
Если вы пропустили двоеточие в ссылке на диапазон ячеек, будет отображаться ошибка #ИМЯ? .
В приведенном ниже примере формула ИНДЕКС выдает ошибку #ИМЯ?, так как в диапазоне B2 — B12 нет двоеточия.
Решение. Убедитесь, что все ссылки на диапазон включают двоеточие.
Некоторые функции Excel работают только тогда, когда включена соответствующая надстройка. При использовании их без надстройки будет выводится ошибка #ИМЯ? . Например, чтобы использовать функцию ПЕРЕСЧЕТЕВРО, нужно включить надстройку Инструменты для евро. Если вы применяете пользовательские функции и макросы, для которых требуется пакет анализа, убедитесь, что надстройка Пакет анализа включена.
Чтобы включить надстройку в Excel:
Щелкните Файл > Параметры.
В списке Управление выберите пункт Надстройки Excel и нажмите кнопку Перейти.
Установите нужный флажок и нажмите кнопку ОК.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Источник
При работе в Эксель, можно столкнуться с различными ошибками, одной из распространённых является ошибка #ИМЯ в Excel. В этой статье мы разберем причины ее появления и способы, как ее исправить.
Причина 1. Неправильное имя функции
Для учебного примера давайте составим простую таблицу, где будет представлена выручка от продажи трех товаров, и наша задача будет рассчитать среднюю выручку:
В нашем случае мы написали функцию СРЗНА(), при том что корректное название – СРЗНАЧ(). Итак, основная причина ошибки #ИМЯ в Excel – это неправильное написание названия функции. В нашем случае давайте в формуле заменим СРЗНА() на СРЗНАЧ() и тогда все заработает как надо:
Причина 2. Отключенные макросы
При использовании пользовательских функций, написанных на VBA в Excel, мы также можем столкнуться с ошибкой #ИМЯ. Разберем на небольшом примере:
Мы написали пользательскую функцию «Возведение_в_квадрат», которая как понятно из названия, возводит число, которое мы передаем в качестве параметра, в квадрат:
Function Возведение_в_квадрат(Число As Variant) As Variant
Возведение_в_квадрат = Число * Число
End Function
Пока все работает, однако если мы сохраним файл, закроем его и откроем заново, то можем столкнуться с такой ситуацией:
Итак, мы видим ошибку #ИМЯ в Эксель, хотя пять минут назад все отлично работало. Причина такого поведения Excel в том, что запуск макросов отключен по умолчанию при открытии файлов и нам нужно нажать кнопку «Включить содержимое», тогда макросы активируются и наша функция станет работать как раньше.
Часто сталкиваетесь с ошибками и непонятным поведением в Excel? Тратите много времени на поиск решения в интернете? Если да, то хотел бы обратить ваше внимание на курс «Excel + Google Таблицы с нуля до PRO» от Skillbox. На нем вы научитесь работать в Excel, как профи, что позволит вам выполнять быстро и верно выполнять поставленные задачи.
Спасибо за внимание. Остались вопросы – задавайте их в комментариях.
Источник
Автоматизация задач с помощью средства записи макросов — Excel
Для автоматизации повторяющихся задач в Microsoft Excel можно быстро записать макрос. Предположим, у вас есть даты в различном формате и вы хотите применить ко всем из них один формат. Это можно сделать с помощью макроса. Вы можете записать макрос, который применяет нужный формат, а затем запускать его при необходимости.
При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.
Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».
Запись макроса
Перед записью макросов полезно знать следующее:
Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Чтобы записать макрос, следуйте инструкциям ниже.
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+ SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса . При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (Personal.xlsб), если она еще не существует, и сохраняет макрос в этой книге.
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
Чтобы начать запись макроса, нажмите кнопку ОК.
Выполните действия, которые нужно записать.
На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.
Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Сведения о параметрах безопасности макросов и их значении.
Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги.
С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.
Назначение макроса объекту, фигуре или графическому элементу
Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.
В поле Назначить макроса выберите макрос, который вы хотите назначить.
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.
Вы можете назначать макросы формам и элементам ActiveX на листе.
Узнайте, как включать и отключать макросы в файлах Office.
Открытие редактора Visual Basic
Нажмите клавиши ALT+F11.
Узнайте, как найти справку по элементам Visual Basic.
Работа с записанным кодом в редакторе Visual Basic (VBE)
С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.
Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.
Запись макроса
Перед записью макросов полезно знать следующее:
Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.
Перейдите в Excel > параметры. > ленты & панель инструментов.
В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Чтобы записать макрос, следуйте инструкциям ниже.
На вкладке Разработчик нажмите кнопку Запись макроса.
В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.
Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.
Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.
В поле Описание при необходимости введите краткое описание действий макроса.
Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести содержательное описание со всеми сведениями, которые могут быть полезны вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.
Чтобы начать запись макроса, нажмите кнопку ОК.
Выполните действия, которые нужно записать.
На вкладке Разработчик щелкните Остановить запись.
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.
Примечание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Узнайте, как включать и отключать макросы в Excel для Mac.
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.
Назначение макроса объекту, фигуре или графическому элементу
Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.
В поле Назначить макроса выберите макрос, который вы хотите назначить.
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.
Вы можете назначать макросы формам и элементам ActiveX на листе.
Открытие редактора Visual Basic
На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.
Узнайте, как найти справку по элементам Visual Basic.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Источник
Я создаю макросы VBA в своей электронной таблице Excel. Я замечаю, что время от времени (обычно после сохранения и повторного открытия электронной таблицы) одно или несколько имен макросов изменяется с sheet1.macroname
на spreadsheetname.xls!macroname
. Это недопустимое имя макроса, поэтому я больше не могу его запускать.
Я могу решить эту проблему, удалив все макросы, сохранив результат, вставив макросы обратно и сохранив их снова, но от обычных пользователей этого ожидать нельзя.
Кто-нибудь знает, что вызывает это, и что я могу сделать, чтобы предотвратить это?
Редактировать более подробно
Когда я запускаю электронную таблицу и отображаю диалоговое окно «Макрос», кажется, что один, а иногда и больше макросов меняет свое имя с sheet1.macroname
на spreadsheet.xls!macroname
. Попытка запустить этот макрос двойным щелчком мыши выдает сообщение об ошибке «Недопустимое имя макроса». Если закрыть окно сообщения об ошибке и дважды щелкнуть дважды, появится сообщение об ошибке «Ссылка недействительна». Последующие попытки делают то же самое.
Вызов другого макроса sheet1.othermacro
двойным щелчком по нему работает и закрывает диалог макроса. При его повторном отображении первый макрос изменил свое имя обратно на sheet1.macroname
. Который решает проблему, я полагаю.
Ниже описывается создание и удаление макроса в Excel 2013 и 2016.
Запись макроса
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши. Команды для записи, создания и удаления макросов доступны на вкладке ленты Разработчик.
- Если вкладка Разработчик недоступна, выполните следующие действия для ее отображения:
- Откройте вкладку Файл.
- Нажмите кнопку Параметры и выберите команду Настройка ленты.
- В категории Настройка ленты в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку ОК.
- На вкладке Разработчик в группе Код нажмите кнопку Безопасность макросов.
- В группе Параметры макросов выберите переключатель Включить все макросы (не рекомендуется, возможен запуск опасной программы), а затем дважды нажмите кнопку ОК.
ВНИМАНИЕ : Для предотвращения запуска потенциально опасного кода по завершении работы с макросами рекомендуется вернуть параметры, отключающие все макросы.
Нравится? Поделись с друзьями в социальных сетях, нажми поделиться
- На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
- В поле Имя введите имя макроса .
ПРИМЕЧАНИЕ : Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса.
- Чтобы назначить сочетание клавиш с клавишей CTRL для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву.Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Excel на то время, пока открыта книга, содержащая данный макрос.
- В поле Сохранить в выберите книгу, в которой нужно сохранить макрос.Если вам нужно, чтобы данный макрос был всегда доступен при работе в Excel, выберите вариант Личная книга макросов. При выборе этого варианта создается скрытая личная книга макросов (Personal.xlsb) (если она еще не существует), в которой сохраняется данный макрос. В Windows 7 и Windows Vista эта книга сохраняется в папке C:Usersимя_пользователяApplication DataMicrosoftExcelXLStart. В Microsoft Windows XP эта книга сохраняется в папке C:Documents and Settingsимя_пользователяApplication DataMicrosoftExcelXLStart, откуда она будет автоматически загружаться при каждом запуске приложения Excel. Если вы хотите автоматически выполнять макрос из личной книги в другой книге, следует также сохранить эту книгу в папке XLStart, чтобы при запуске Excel открывались обе книги.
- Введите описание макроса в поле Описание.
- Для начала записи макроса нажмите кнопку ОК.
- Выполните действия, которые нужно записать.
- На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .
Создание макроса с помощью VBA
- На вкладке Разработчик в группе Код нажмите кнопку Visual Basic.
- При необходимости в меню Insert выберите команду Module.
ПРИМЕЧАНИЕ : Модули будут созданы автоматически для всех листов книги.
- В окне программы модуля введите или скопируйте нужный текст макроса.
- Для запуска макроса из окна модуля нажмите клавишу F5.
- Когда макрос будет создан, в меню File выберите команду Close and Return to Microsoft Excel.
Нравится? Подпишись на рассылку полезных советов от prodma.ru
[wysija_form id=»1″]
Копирование части макроса для создания нового макроса
- Откройте книгу, содержащую макрос, который нужно скопировать.
- На вкладке Разработчик в группе Код нажмите кнопку Макросы.
- В поле Имя выберите имя макроса, который нужно скопировать.
- Нажмите кнопку Изменить.
- В окне редактора Visual Basic выделите строки макроса, которые нужно скопировать.
СОВЕТ : Чтобы скопировать макрос целиком, включите в выделенную часть строки Sub и End Sub.
- Выберите в меню Правка команду Копировать.
- В поле Procedure окна кода выберите модуль, куда нужно поместить текст.
- Выберите в меню Правка команду Вставить.
Личную книгу макросов (файл Personal.xls) редактировать нельзя, поскольку она является скрытой книгой, которая всегда открыта. Сначала ее следует отобразить с помощью команды Показать. Этот файл также можно открыть в редакторе Visual Basic, нажав клавиши ALT+F11.
Назначение макроса объекту, графическому объекту и элементу управления
- Щелкните на листе правой кнопкой мыши объект, графический объект или элемент управления, которому нужно назначить существующий макрос, а затем в контекстном меню выберите команду Назначить макрос.
- В поле Имя выберите макрос, который нужно назначить.
Удаление макроса
- Выполните одно из указанных ниже действий.
- Откройте книгу, содержащую макрос, который нужно удалить.
- Если макрос, который требуется удалить, хранится в личной книге макросов (Personal.xlsb) и эта книга скрыта, для ее отображения выполните указанные ниже действия.
- На вкладке Вид в группе Окно нажмите кнопку Отобразить окно.
- В разделе Показать скрытое окно книги выберите пункт PERSONAL и нажмите кнопку ОК.
- В списке Находится в выберите рабочую книгу с макросом, который требуется удалить. Например, выберите вариант Эта книга.
- В списке Имя выберите имя макроса, который требуется удалить.
- Нажмите кнопку Удалить.