Разное

Вставка макроса в excel: Как вставить готовый макрос в рабочую книгу?

Содержание

Добавить макрос в excel Excelka.ru

Как вставить макрос в Excel

Нам в работе иногда не хватает стандартных возможностей Эксель и приходится напрягать мозг, чтобы написать какую-то свою функцию или найти уже готовый макрос для решения данной задачи. Отсюда возникает вопрос: Что такое макрос, как писать и куда его вставлять

Макрос — это специальная программа, написанная на встроенном в Excel языке программирования VBA ( Visual Basic for Application ). Данный язык разработан компанией Microsoft , специально для приложений MS Office . Как писать макросы — это отдельная большая тема, по которой написаны сотни книг и существует множество сайтов, поэтому мы не будем рассматривать это в данной статье. Давайте, все-таки, разберем куда макросы нужно вставлять, чтобы они работали в Excel‘е.

Предположим мы имеем готовый макрос для объединения ячеек с текстом (напомним, что стандартно Excel при сочетании ячеек оставляет только текст крайней левой верхней ячейки). Для этого нужно открыть редактор Visual Basic ( Alt + F11 ), правой кнопкой мыши нажать на Microsoft Excel Objects , выбрать Insert — Module:

Копируем туда код нашего макроса:

Нажимаем сохранить и возвращаемся к Excel . Выделяем необходимые ячейки и выбираем в меню Вид — Макросы (Alt + F8) название нашего макроса:

Жмем Выполнить и получаем необходимый нам результат:

Создание макросов в Microsoft Excel

Макросы в Microsoft Excel позволяют значительно ускорить работу с документами в этом табличном редакторе. Эта возможность достигается путем автоматизации повторяющихся действий, записанных в специальный код. Давайте разберем, как создать макросы в программе и как их можно отредактировать.

Способы записи макросов в Excel

Макрос записывается двумя способами: автоматически и вручную. Воспользовавшись первым вариантом, вы просто записываете определенные действия в Microsoft Excel, которые выполняете в данный момент времени. Потом можно будет воспроизвести эту запись. Такой метод очень легкий и не требует знания кода, но применение его на практике довольно ограничено. Ручная запись, наоборот, требует знаний программирования, так как код набирается вручную с клавиатуры. Однако грамотно написанный таким образом код может значительно ускорить выполнение процессов.

Вариант 1: Автоматическая запись макросов

Прежде чем начать автоматическую запись макросов, нужно включить их в программе Microsoft Excel. Для этого воспользуйтесь нашим отдельным материалом.

Когда все готово, приступаем к записи.

    Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».

  • После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
  • Для примера запишем простейшее арифм
  • Как в excel вставить макрос Excelka.ru

    Как вставить макрос в Excel

    Нам в работе иногда не хватает стандартных возможностей Эксель и приходится напрягать мозг, чтобы написать какую-то свою функцию или найти уже готовый макрос для решения данной задачи. Отсюда возникает вопрос: Что такое макрос, как писать и куда его вставлять

    Макрос — это специальная программа, написанная на встроенном в Excel языке программирования VBA ( Visual Basic for Application ). Данный язык разработан компанией Microsoft , специально для приложений MS Office . Как писать макросы — это отдельная большая тема, по которой написаны сотни книг и существует множество сайтов, поэтому мы не будем рассматривать это в данной статье. Давайте, все-таки, разберем куда макросы нужно вставлять, чтобы они работали в Excel‘е.

    Предположим мы имеем готовый макрос для объединения ячеек с текстом (напомним, что стандартно Excel при сочетании ячеек оставляет только текст крайней левой верхней ячейки). Для этого нужно открыть редактор Visual Basic ( Alt + F11 ), правой кнопкой мыши нажать на Microsoft Excel Objects , выбрать Insert — Module:

    Копируем туда код нашего макроса:

    Нажимаем сохранить и возвращаемся к Excel . Выделяем необходимые ячейки и выбираем в меню Вид — Макросы (Alt + F8) название нашего макроса:

    Жмем Выполнить и получаем необходимый нам результат:

    Работа с макросами в Excel

    Макрос – это специальная программа, написанная на встроенном в Excel языке программирования Visual Basic for Application (VBA). Если вам часто приходится выполнять одни и те же операции в Эксель, то гораздо проще записать макрос или найти готовый код макроса, для выполнения определенных действий в Интернете.

    Во втором случае, Вы найдете макрос в виде VBA-кода. В этом обычно и состоит вопрос: как добавить макрос в рабочий лист Excel, и как им пользоваться.

    Как включить макросы в Excel

    Чтобы Вы могли использовать макросы в работе, для начала их нужно включить. Кликаем по кнопочке «Файл» , в левом верхнем углу, и выбираем из списка «Параметры» .

    В окне «Параметры Excel» перейдите на вкладку «Настройка ленты» , теперь в правой части окна поставьте галочку напротив пункта «Разработчик» и нажмите «ОК» .

    Вверху на ленте появится новая вкладка «Разработчик» . На ней и будут находиться все необходимые команды для работы с макросами.

    Теперь разрешим использование всех макросов. Снова открываем «Файл» – «Параметры» . Переходим на вкладку «Центр управления безопасностью» , и в правой части окна кликаем по кнопочке «Параметры центра управления безопасностью» .

    Кликаем по вкладке «Параметры макросов» , выделяем маркером пункт «Включить все макросы» и жмем «ОК» . Теперь перезапустите Excel: закройте программу и запустите ее снова.

    Как вставить макрос в Excel

    Важно понимать, что макрос можно вставить в модуль, рабочий лист, рабочую книгу, или они могут являться частью пользовательской формы.

    Вставим код макроса в модуль

    Например, нужно объединить несколько ячеек в одну без потери данных. Как известно, Excel может объединять ячейки, сохраняя данные только из левой верхней ячейки. Чтобы сохранить все данные из объединяемых ячеек, будем использовать VBA-код.

    Открываем редактор VBА: переходим на вкладку «Разработчик» и кликаем по кнопочке «Visual Basic» , также можно воспользоваться комбинацией «Alt+F11» .

    С левой стороны редактора, в окне «Project» , выделяем мышкой рабочую книгу. Рабочая книга – это Ваш открытый документ Excel, в который нужно вставить макрос. У меня он называется «Книга1» .

    Кликаем по выбранному пункту правой кнопкой мыши и выбираем из меню «Insert» – «Module» .

    В окне «Project» появилась новая папка «Modules» , а в ней наш первый модуль с названием «Module1» .

    Справа появится поле для ввода VBA-кода. С помощью комбинации «Ctrl+V» , вставляю в него код, который будет объединять несколько ячеек, без потери данных. Название макроса «MergeCell» .

    Следите за тем, куда Вы вставляете код, это будет написано или в заголовке редактора, или в заголовке окна для вставки кода. Мы вставляем код в модуль, соответственно надпись – «Modul1(Code)» .

    Сохраняем изменения, нажав комбинацию «Ctrl+S» . Если Вы используете Excel 2007 и выше, появится окно сохранения документа. В нем, в поле «Тип файла» , выберите из выпадающего списка «Книга Excel с поддержкой макросов» и нажмите «Сохранить» .

    Вставим код макроса в рабочий лист

    Например, у нас есть выпадающий список. Нужно сделать так, чтобы при выборе нескольких значений из него, они появлялись в ячейках справа.

    Открываем редактор VBA и в окошке «Project» выделяем нужный лист, если их в рабочей книге несколько, на котором должен работать макрос: «Лист1 (Лист1)» . Кликаем по нему два раза мышкой.

    Справа появиться окошко для ввода кода. Обратите внимание, мы вставляем код в рабочий лист, соответственно в заголовке написано «Лист1(Code)» . Сохраните изменения в документе, как было описано выше.

    Чтобы вставить код макроса в рабочую книгу , кликните два раза мышкой по пункту «ЭтаКнига» и вставьте код в появившуюся область.

    Создадим пользовательскую функцию

    Например, создадим функцию, которая будет рассчитывать НДС. В окне «Project» кликаем по рабочему листу правой кнопкой мыши и выбираем «Insert» – «Module» .

    В папке «Modules» , появляется второй модуль с названием «Module2» . Прописываем VBA-код в соответствующее окно, и сохраняем его, нажав «Ctrl+S» . Называться функция будет «NDS» .

    Как запустить макросы в Excel

    Теперь рассмотрим, как выполняются все созданные ранее макросы в документе Excel.

    Если макрос был вставлен в модуль , то он запускается пользователем. У меня такой макрос объединяет несколько ячеек в одну без потери данных.

    Выделяем ячейки, которые нужно объединить, затем переходим на вкладку «Разработчик» и кликаем по кнопочке «Макросы» .

    Откроется диалоговое окно «Макрос» . В списке, выбираем нужное имя макроса: «MergeCell» , и жмем «Выполнить» .

    Макрос выполнился: нужные ячейки объединены, и текст в них сохранен.

    Если макрос был вставлен в рабочий лист , то запускаться он будет автоматически, в зависимости от действий пользователя. У меня макрос добавляет значения из выпадающего списка в ячейки справа. В код вставлен то диапазон ячеек, в котором находятся выпадающие списки.

    Теперь, когда я выбираю из выпадающего списка значение, оно вписывается в ячейки, расположенные справа от той ячейки, в которой находится сам список. Это свидетельствует о выполнении макроса.

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

    Если Вы создали пользовательскую функцию , то вставлять в документ ее также надо как функцию. У меня такая функция должна рассчитывать НДС.

    Например, применим ее к ячейке А1 , со значением «100» . Выделяем ячейку, в которую будет вписан результат. Затем переходим на вкладку «Формулы» и нажимаем кнопочку «Вставить функцию» .

    Откроется окно «Мастер функций» . В поле «Категория» выбираем из выпадающего списка «Определенные пользователем» , в поле «Выберите функцию» выбираем название из списка: «NDS» . Нажимаем «ОК» .

    Затем выделяю ячейку, для которой нужно посчитать НДС, и нажимаю «ОК» .

    Включить макросы в документе Excel 2010 совершенно не сложно. Надеюсь, Вы также разобрались, как вставить макрос в Excel, а затем выполнить его.

    Автоматизация задач с помощью средства записи макросов — Excel

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

    Для автоматизации повторяющихся задач в Microsoft Excel можно быстро записать макрос. Предположим, у вас есть даты в различном формате и вы хотите применить ко всем из них один формат. Это можно сделать с помощью макроса. Вы можете записать макрос, который применяет нужный формат, а затем запускать его при необходимости.

    При записи макроса записываются все действия, описанные в Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, нажатие ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов, а также импорт данных из внешнего источника, например Microsoft Access. Приложение Visual Basic (VBA) — это подмножество мощного языка программирования Visual Basic, которое входит в большинство приложений Office. Несмотря на то, что VBA обеспечивает возможность автоматизации процессов между приложениями Office, вам не нужно знать код VBA или программное программирование, если это нужно.

    Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.

    Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

    Запись макроса

    Перед записью макросов полезно знать следующее:

    Макро

    Назначение макроса форме или кнопке элемента управления

    Макросы и средства VBA можно найти на вкладке разработчик , которая по умолчанию скрыта.

    Первый этап — включить его. Дополнительные сведения можно найти в статье: Отображение вкладки Разработчик.

    Добавление кнопки (элемент управления формы)

    1. На вкладке разработчик в группе элементы управления нажмите кнопку Вставить, а затем в разделе элементы управления формынажмите кнопку

      .

    2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Откроется всплывающее окно назначить макрос .

    3. Назначьте кнопку макроса, а затем нажмите кнопку ОК.

    4. Чтобы задать свойства элемента управления, щелкните ее правой кнопкой мыши и выберите пункт Формат элемента управления.

    Кнопка «добавить команду» (элемент ActiveX)

    1. На вкладке разработчик в группе элементы управления нажмите кнопку Вставить, а затем в разделе элементы ActiveXнажмите кнопку команд

      .


    2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки.

    3. В группе элементы управления нажмите кнопку Просмотреть код. Откроется редактор Visual Basic. Убедитесь в том, что выбран пункт в раскрывающемся списке справа. Процедура Sub CommandButton1_Click (на рисунке ниже) выполняет два макроса при нажатии кнопки: SelectC15 и хелломессаже.

    4. В подпроцедуре для кнопки Command выполните одно из указанных ниже действий.

      • Введите имя существующего макроса в книге. Чтобы найти макросы, выберите макросы в группе код . Вы можете запускать несколько макросов с помощью кнопки, вводя их имена на отдельных строках внутри подпроцедуры.

      • При необходимости добавьте собственный код VBA.

    5. Закройте редактор Visual Basic и щелкните режим конструктора

      , чтобы включить режим конструктора.

    6. Чтобы запустить код VBA, который теперь входит в состав кнопки, щелкните только что созданную кнопку ActiveX.

    7. Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора.

    8. Чтобы указать свойства кнопки, на вкладке разработчик в группе элементы управления нажмите кнопку Свойства

      . Вы также можете щелкнуть кнопку правой кнопкой мыши и выбрать пункт Свойства.


      Примечание: Перед тем как нажать кнопку Свойства, выделите объект, свойства которого требуется просмотреть или изменить.



      Откроется диалоговое окно Свойства . Для получения дополнительных сведений о каждом свойстве выберите свойство и нажмите клавишу F1, чтобы отобразить соответствующий раздел справка по Visual Basic. Можно также ввести имя свойства в поле Поиск справки Visual Basic. В приведенной ниже таблице перечислены доступные свойства.

























    Описание параметра


    Необходимое свойство


    Общие


    Загружается ли элемент управления при открытии книги. (Не учитывается для элементов ActiveX).

    AutoLoad (Excel)

    Может ли элемент управления получать фокус и реагировать на события, генерируемые пользователем.

    Enabled (форма)

    Можно ли изменять элемент управления

    Locked (форма)

    Имя элемента управления

    Name (форма)

    Способ привязки элемента управления к расположенным под ним ячейкам (не закреплен, можно перемещать, но нельзя изменять размер, можно перемещать и изменять размер)

    Placement (Excel)

    Можно ли выводить элемент управления на печать

    PrintObject (Excel)

    Является ли элемент управления видимым или скрытым

    Visible (форма)


    Текст


    Атрибуты шрифта (полужирный, курсив, размер, зачеркивание, подчеркивание и насыщенность)

    Bold, Italic, Size, StrikeThrough, Underline, Weight (форма)

    Поясняющий текст элемента управления, определяющий или описывающий его

    Caption (форма)

    Будет ли содержимое элемента управления переноситься по словам в конце строки

    WordWrap (форма)


    Размер и положение


    Будет ли размер элемента управления изменяться автоматически для отображения всего содержимого

    AutoSize (форма)

    Высота или ширина в пунктах

    Height, Width (форма)

    Расстояние от элемента управления до левого или верхнего края листа

    Left, Top (форма)


    Форматирование


    Цвет фона

    BackColor (форма)

    Стиль фона (прозрачный или непрозрачный)

    BackStyle (форма)

    Цвет переднего плана

    ForeColor (форма)

    Наличие тени элемента управления

    Shadow (Excel)


    Изображение


    Точечный рисунок, отображаемый в элементе управления

    Picture (форма)

    Положение рисунка относительно его заголовка (слева, сверху, справа и так далее)

    PicturePosition (форма)


    Клавиатура и мышь


    Сочетание клавиш для элемента управления

    Accelerator (форма)

    Настраиваемый значок мыши

    MouseIcon (форма)

    Тип указателя, отображаемого при наведении пользователем указателя мыши на определенный объект (стандартная, стрелка, I-образная и т. д.).

    MousePointer (форма)

    Принимает ли элемент управления фокус при щелчке.

    Такефокусонкликк (форма)



    Макросы и средства VBA можно найти на вкладке » разработчик «, которая скрыта по умолчанию, поэтому первым делом нужно включить ее.

    1. Перейдите в раздел настройки > ExcelПанель инструментов & > ленты.

    2. В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

    Добавление кнопки (элемент управления формы)

    Выполните указанные ниже действия:

    1. На вкладке разработчик нажмите кнопку

      .

    2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки. Откроется всплывающее окно назначить макрос .


      Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите команду назначить макрос.

    3. Назначение макроса кнопке и нажатие кнопки ОК.

    4. Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления....

       

    Кнопка добавления команды (элемент управления Visual Basic)

    1. На вкладке разработчик нажмите кнопку

      .

    2. Щелкните на листе место, где должен находиться левый верхний угол кнопки.


      Примечание: Если кнопка уже вставлена, щелкните ее правой кнопкой мыши и выберите команду назначить макрос.

    3. В диалоговом окне Назначение макроса нажмите кнопку создать, после чего откроется Редактор Visual Basic (VBE) на панели с помощью следующего кода:


      
        Sub ButtonX_Click() 
      
        End Sub


    4. В подпроцедуре для кнопки Command между дочерними и конечными подстроками выполните одно из указанных ниже действий.

      • Введите имя существующего макроса в книге. Вы можете запускать несколько макросов с помощью кнопки, вводя их имена на отдельных строках внутри процедуры Sub.

      • Добавьте собственный код VBA.

    5. Щелкните режим конструктора

      , чтобы убедиться в том, что режим конструктора выключен, а затем закройте окно редактора Visual Basic.

    6. Чтобы изменить кнопку, щелкните ее правой кнопкой мыши и выберите команду Visual Basic.

    7. Чтобы задать свойства элемента управления, щелкните его правой кнопкой мыши и выберите пункт Формат элемента управления....

    Как в Excel 2010 или 2013 вставить и запустить код VBA – руководство для начинающих

    Это краткое пошаговое руководство предназначено для начинающих пользователей и рассказывает о том, как вставлять код VBA (Visual Basic for Applications) в книгу Excel, и как запускать вставленный макрос для выполнения различных задач на этом листе.

    Большинство пользователей не являются гуру Microsoft Office. Они могут не знать всех тонкостей работы той или иной функции, и не смогут ответить на вопрос, как отличается скорость выполнения макроса VBA в Excel 2010 и 2013. Многие просто используют Excel, как инструмент для обработки данных.

    Предположим, нужно изменить данные на листе Excel определённым образом. Мы немало погуглили и нашли макрос VBA, который решает эту задачу. Однако, наше знание VBA оставляет желать лучшего. Вот тут-то и придёт на помощь пошаговая инструкция, с помощью которой мы сможем использовать найденный код.

    Вставляем код VBA в книгу Excel

    В этом примере мы будем использовать VBA макрос, который удаляет переносы строк из ячеек текущего листа Excel.

      1. Открываем рабочую книгу в Excel.
      2. Нажатием Alt+F11 вызываем окно редактора Visual Basic
      3. На панели Project-VBAProject кликаем правой кнопкой мыши по имени рабочей книги (в левой верхней части окна редактора) и в контекстном меню выбираем Insert > Module.
      4. Копируем код VBA (с веб-страницы или из другого источника) и вставляем его в правую область редактора VBA (окно Module1).Подсказка: Как увеличить скорость выполнения макроса?

        В самом начале кода Вашего макроса VBA должны содержаться строки:

        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual

        Если таких строк нет, то обязательно добавьте следующие строки в свой макрос, чтобы он работал быстрее (см. рисунок выше):

        Эти строки, как можно понять из их содержания, отключают обновление экрана и пересчёт формул рабочей книги перед выполнением макроса. После выполнения кода эти параметры снова включаются. Данный приём приводит к ускорению выполнения макроса от 10% до 500% (да, макрос может работать в 5 раз быстрее, если манипуляции над ячейками происходят без лишних остановок).

      5. Сохраняем рабочую книгу, как книгу Excel с поддержкой макросов. Для этого нажмите Ctrl+S и в окне с предупреждением Следующие компоненты невозможно сохранить в книге без поддержки макросов (The following features cannot be saved in macro-free workbook) нажмите Нет (No).Откроется диалоговое окно Сохранение документа (Save as). В выпадающем списке Тип файла (Save as type) выбираем Книга Excel с поддержкой макросов (Excel macro-enabled workbook) и нажимаем кнопку Сохранить (Save).
    1. Нажимаем Alt+Q, чтобы закрыть окно редактора VBA и вернуться к книге Excel.

    Запускаем макрос VBA в Excel

    Чтобы запустить только что добавленный макрос, нажмите Alt+F8. Откроется диалоговое окно Макрос (Macro). В списке Имя макроса (Macro name) выберите нужный макрос и нажмите кнопку Выполнить (Run).

    Оцените качество статьи. Нам важно ваше мнение:

    Как вставить макрос в Excel

    Это краткое пошаговое руководство предназначено для начинающих пользователей и рассказывает о том, как вставлять код VBA (Visual Basic for Applications) в книгу Excel, и как запускать вставленный макрос для выполнения различных задач на этом листе.

    Предположим, нужно изменить данные на листе Excel определённым образом. Мы немало погуглили и нашли макрос VBA, который решает эту задачу. Однако, наше знание VBA оставляет желать лучшего. Вот тут-то и придёт на помощь пошаговая инструкция, с помощью которой мы сможем использовать найденный код.

    • Вставляем код VBA в книгу Excel
    • Запускаем макрос VBA в Excel

    Вставляем код VBA в книгу Excel

    В этом примере мы будем использовать VBA макрос, который удаляет переносы строк из ячеек текущего листа Excel.

    1. Открываем рабочую книгу в Excel.
    2. Нажатием Alt+F11 вызываем окно редактора Visual Basic
    3. На панели Project-VBAProject кликаем правой кнопкой мыши по имени рабочей книги (в левой верхней части окна редактора) и в контекстном меню выбираем Insert > Module.
    4. Копируем код VBA (с веб-страницы или из другого источника) и вставляем его в правую область редактора VBA (окно Module1).

      Подсказка: Как увеличить скорость выполнения макроса?

      В самом начале кода Вашего макроса VBA должны содержаться строки:

      Application.ScreenUpdating = False Application.Calculation = xlCalculationManual

      Если таких строк нет, то обязательно добавьте следующие строки в свой макрос, чтобы он работал быстрее (см. рисунок выше):

      Эти строки, как можно понять из их содержания, отключают обновление экрана и пересчёт формул рабочей книги перед выполнением макроса. После выполнения кода эти параметры снова включаются. Данный приём приводит к ускорению выполнения макроса от 10% до 500% (да, макрос может работать в 5 раз быстрее, если манипуляции над ячейками происходят без лишних остановок).

    5. Сохраняем рабочую книгу, как книгу Excel с поддержкой макросов. Для этого нажмите Ctrl+S и в окне с предупреждением Следующие компоненты невозможно сохранить в книге без поддержки макросов (The following features cannot be saved in macro-free workbook) нажмите Нет (No).

      Откроется диалоговое окно Сохранение документа (Save as). В выпадающем списке Тип файла (Save as type) выбираем Книга Excel с поддержкой макросов (Excel macro-enabled workbook) и нажимаем кнопку Сохранить (Save).

    1. Нажимаем Alt+Q, чтобы закрыть окно редактора VBA и вернуться к книге Excel.

    Запускаем макрос VBA в Excel

    Чтобы запустить только что добавленный макрос, нажмите Alt+F8. Откроется диалоговое окно Макрос (Macro). В списке Имя макроса (Macro name) выберите нужный макрос и нажмите кнопку Выполнить (Run).

    Урок подготовлен для Вас командой сайта office-guru.ru Источник: https://www.ablebits.com/office-addins-blog/2013/12/06/add-run-vba-macro-excel/ Перевел: Андрей Антонов Правила перепечатки Еще больше уроков по Microsoft Excel

    Назначение макроса кнопке — Служба поддержки Office

    После создания макроса можно назначить его кнопке, служащей для запуска макроса. Его можно назначить кнопке на панели быстрого доступа или в настраиваемой группе на ленте.

    Если нужно, чтобы кнопка макроса была доступна в других книгах, назначьте ее макросу, созданному в личной книге.

    Добавление кнопки макроса на панель быстрого доступа

    1. Откройте вкладку Файл и выберите пункт Параметры, а затем — категорию Панель быстрого доступа.

    2. В списке Выбрать команды из выберите пункт макросы.

    3. Выберите макрос, которому нужно назначить кнопку.

    4. Нажмите кнопку Добавить, чтобы переместить макрос в список кнопок на панели быстрого доступа.

    5. Чтобы заменить значок макроса по умолчанию другой кнопкой для макроса, нажмите кнопку изменить.

    6. В поле Символ выберите значок кнопки для макроса.

    7. Чтобы использовать дружественное имя для кнопки, введите нужное имя в поле Отображаемое имя.

      В имени кнопки можно использовать пробелы.

    8. Нажмите два раза кнопку ОК.

    На панели быстрого доступа появится новая кнопка, с помощью которой можно запустить макрос.


    Совет:  После сохранения книги кнопки, назначенные макросам в личной книге, будут доступны в каждой открываемой книге.

    Добавление кнопки макроса в настраиваемую группу на ленте

    1. Откройте вкладку Файл и выберите пункт Параметры, а затем — категорию Настроить ленту.

    2. В разделе Настройка ленты в списке Основные вкладки установите флажок Разработчик, если он не установлен.

    3. Выберите вкладку, на которую нужно добавить настраиваемую группу.

      Например, выберите вкладку Главная.

    4. Нажмите кнопку Создать группу.

      На выбранную вкладку будет добавлена группа Новая группа (настраиваемая).

    5. Чтобы назначить новой группе другое имя, нажмите кнопку Переименовать, введите нужное имя в поле Отображаемое имя и нажмите кнопку ОК.

      В имени можно использовать пробелы. Для примера назовите группу Мои макросы.

    6. Чтобы добавить макрос в группу, в списке Выбрать команды из выберите пункт Макросы.

    7. Выберите макрос, который нужно добавить в новую группу, и нажмите кнопку Добавить. Макрос будет добавлен в группу Мои макросы.

    8. Чтобы назначить макросу более понятное имя, нажмите кнопку Переименовать и введите нужное имя в поле Отображаемое имя.

      В имени можно использовать пробелы.

    9. В поле Символ выберите значок кнопки для макроса.

    10. Нажмите два раза кнопку ОК.

    На выбранной вкладке появится новая группа с кнопкой запуска макроса.


    Совет:  После сохранения книги кнопки, назначенные макросам в личной книге, будут доступны в каждой открываемой книге.

    Трюки для Excel по написанию макросов 2018 год

    Автор Дмитрий Якушев На чтение 17 мин. Просмотров 2.1k.

    Итог: Изучите 18 советов для экономии времени при написании макросов VBA для Excel или других приложений Office.

    Уровень мастерства: Средний

    18 Советов для макросов VBA

    В начале прошлого года я написал популярный пост о 17 советах для Excel на 2017 год. Я решил продолжить традицию в этом году и написать пост о советах, которые сэкономят ваше время при написании макросов VBA.

    Здесь часть из моих любимых советов, а также некоторые любимые из блога на YouTube и моего курса VBA Pro.

    Очевидно, есть множество советов для VBA. Поэтому, пожалуйста, оставьте комментарий внизу поста с вашими любимыми советами. Таким образом, мы все можем учиться друг у друга! 🙂

    Скачать PDF

    Вы можете скачать печатную версию статьи в формате PDF.

    Содержание

    1. Alt + F11, чтобы открыть редактор VB
    2. Храните свои макросы в личной книге макросов
    3. Ctrl + Пробел для автозаполнения
    4. Intellisense для листов
    5. Использовать комментарии либерально
    6. F8, чтобы пройти через каждую строку кода
    7. Назначить макросы фигурам
    8. Автоматизируйте повторяющиеся задачи с помощью
      цикла For Next
    9. Используйте Option Explicit
    10. Таблицы Excel (ListObjects)
    11. Получить код с помощью Macro Recorder
    12. Непосредственное окно
    13. Назначить сочетание клавиш для макроса
    14. Убедитесь, что выбран диапазон
    15. Ctrl + Y, чтобы удалить строку кода
    16. Ctrl + I для быстрой информации
    17. Ctrl + J Открывает раскрывающийся список
      Intellisense
    18. Функции рабочего листа

    # 1 — Alt + F11, чтобы открыть редактор VB

    VB Editor — это приложение, которое мы используем для
    написания макросов и создания пользовательских форм. Его можно открыть, нажав
    кнопку Visual Basic на вкладке «Разработчик» в Excel.

    Сочетание клавиш для открытия редактора VB в любой версии
    Excel для Windows — Alt + F11.

    Версия для Mac — Opt + F11 или Fn + Opt + F11.

    Если вы не видите вкладку «Разработчик» на ленте, щелкните
    изображение, чтобы узнать, как его включить:

    Клавиши Fn (функция) на ноутбуках

    Если вы используете клавиатуру ноутбука, вам нужно нажать и удерживать клавишу Fn, прежде чем нажимать F11. Функциональные клавиши на ноутбуках, как правило, являются многофункциональными клавишами и требуют нажатия клавиши Fn для активации функциональных клавиш (F1 – F12).

    Некоторые ноутбуки имеют функцию Fn Lock, которая делает
    функциональные клавиши первичными, что означает, что вам не придется нажимать
    клавишу Fn при нажатии F1-F12.

    Ознакомьтесь с моей статьей «Лучшие сочетания клавиш для Excel», чтобы узнать больше.

    # 2 — Храните свои макросы в личной книге макросов

    Personal Macro Workbook (PMW) — это отличное место для
    хранения часто используемых вами макросов. Эта книга открывается в фоновом
    режиме каждый раз, когда мы открываем Excel, что делает наши макросы легко
    доступными.

    Мы также можем создавать собственные панели инструментов с
    кнопками для запуска наших макросов. Мне нравится думать о PMW как о нашем
    инструментальном поясе Excel, который может сэкономить нам время на выполнение
    задач, которые мы выполняем каждый день.

    Например, у меня есть статья
    с макросом, который создает список уникальных значений на новом чистом листе
    .
    Мы можем сохранить этот макрос в нашем PMW и назначить его кнопке на ленте или
    ярлыке клавиатуры, а затем запустить его в любое время на любой открытой книге.

    Ознакомьтесь с моей бесплатной серией видеороликов о том, как создать личную книгу макросов, чтобы узнать больше. В этой серии также есть видео о том, как добавить кнопки макросов на пользовательскую ленту.

    # 3 — Ctrl + Пробел для автозаполнения

    Это одно из часто используемых мною сочетаний клавиш в VBA. Когда мы набираем код, Ctrl + Space открывает раскрывающееся меню Intellisense, которое содержит список подходящих объектов, свойств, методов, констант и переменных.

    Чтобы
    использовать сочетание клавиш Ctrl + Space в VB Editor:

    1. Начните вводить строку кода, подобную
      ActiveCell.
    2. После ввода первых нескольких букв нажмите Ctrl
      + Пробел
    3. Вы увидите список всех слов VBA, которые
      начинаются с Act.
    4. Нажмите стрелки вверх / вниз, чтобы выбрать
      слово
    5. Затем нажмите Tab или Enter, чтобы завершить
      слово.

    У этого трюка есть два основных преимущества:

    1. Это экономит время, так как не нужно набирать длинные слова и имена переменных.
    2. Это предотвращает опечатки, потому что VBA завершает слова для вас.

    Эти преимущества могут значительно сэкономить время при
    отладке кода.

    # 4 — Intellisense для листов

    Обычно мы также видим раскрывающееся меню Intellisense после ввода точки (.) В редакторе VB.

    Однако это работает не всегда. Одним из распространенных случаев является свойство Worksheets.

    Если мы введем Worksheets («Лист1»). Мы НЕ видим меню Intellisense. Вы можете расстроиться и подумать, что Intellisense не работает.

    Причина, по которой он не работает, заключается в том, что
    свойство Worksheets может содержать ссылку на один или несколько листов. В
    зависимости от ссылки, свойства и методы будут разными для каждого случая. Было
    бы замечательно, если бы Intellisense был достаточно умен, чтобы понять это, но
    это всего лишь одна из тех вещей, с которыми нам приходится жить …

    Есть два способа обойти это и увидеть Intellisense для
    рабочих листов:

    1. Используйте кодовое имя рабочего листа, на который мы хотим сослаться. Это мой любимый метод для ссылок на рабочие листы, потому что код не сломается, если пользователь изменит имя листа.

    2. Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.

    Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.

    # 5 — Используйте комментарии чаще

    Мы можем добавить комментарии к нашему коду, которые помогут
    объяснить, что делает каждый раздел кода.

    Чтобы создать комментарий в VBA, вы вводите апостроф в
    начале строки. Как только вы переместите текстовый курсор за линию, текст
    станет зеленым.

    Зеленый текст позволяет легко различать комментарии при
    чтении кода. VBA полностью игнорирует строки комментариев, и вы можете добавить
    столько, сколько захотите.

    Комментарии к коду несколько спорная тема. Некоторые разработчики считают, что правильно написанный код должен говорить сам за себя, и вам не нужно добавлять дополнительные комментарии. Я понимаю их точку зрения, но это не работает для меня по двум причинам.

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

    Если вы собираетесь поделиться своим проектом VBA или в
    конечном итоге передать его кому-то другому для технического обслуживания,
    тогда им будет намного легче выучить ваш код, если вы добавите много
    комментариев. Я называю это «вежливым планированием вашего наследия». 🙂

    № 6 — F8, чтобы пройти через каждую строку кода

    Сочетание клавиш для перехода по каждой строке кода — F8. Эквивалентом Mac для Step Into/Through является Cmd + Shift + I.

    Это позволяет нам тестировать и отлаживать каждую строку
    кода в наших макросах. Мы также можем открыть Excel рядом с редактором VB (или
    на отдельном мониторе), чтобы увидеть действия, выполняемые в Excel при
    выполнении каждой строки.

    Часто это может помочь вам быстро найти ошибку с помощью
    листа или диапазона.

    Чтобы использовать ярлык Step Into/Through:

    1. Нажмите внутри макроса, который вы хотите
      запустить. Вы можете нажать на любую строку кода. Макрос всегда будет
      начинаться сверху.
    2. Нажмите F8.
    3. Имя макроса будет выделено желтым цветом.
    4. Нажмите F8 еще раз, чтобы запустить эту строку и
      выделить следующую строку.
    5. Продолжайте нажимать F8, чтобы запустить каждую
      строку.

    Важно отметить, что выделенная желтым строка еще не была выполнена. Она будет запущен, когда вы снова нажмете F8.

    # 7 — Фигуры, запускающие макросы

    Листовые элементы управления для кнопок, запускающих макросы, выглядят немного устаревшими. К счастью, мы также можем использовать любую фигуру в Excel для запуска макроса. Формы можно раскрасить и отформатировать, чтобы они больше походили на современные кнопки, которые можно найти в Интернете и в мобильных приложениях.

    Чтобы назначить макрос формой:

    1. Вставьте фигуру на лист и отформатируйте ее по
      своему вкусу. Обычно это будет прямоугольная или круглая форма, содержащая
      текст.
    2. Щелкните правой кнопкой мыши форму и выберите
      «Назначить макрос …».
    3. Выберите макрос из списка и нажмите ОК. Макрос
      обычно будет тем, который хранится в той же книге, что и фигура.
    4. Нажмите на форму, выбрав ячейку на листе.
    5. При наведении курсора курсор изменится на указатель
      руки. Нажатие на форму запустит макрос.

    Я рекомендую, чтобы окно «Да / Нет» появилось до того, как макрос действительно запустится. Это предотвращает любые случайные нажатия кнопок. Посмотрите мое видео о добавлении окна сообщения Да / Нет в ваши макросы. Это часть моей серии видеороликов о Персональной рабочей тетради.

    # 8 — Автоматизируйте повторяющиеся задачи с помощью цикла For Next

    Мы склонны выполнять одни и те же задачи снова и снова в Excel. Такие задачи, как: применение форматирования к нескольким диапазонам / листам, создание списка листов, копирование данных в каждую рабочую книгу, настройка фильтров для каждой сводной таблицы и т.д.

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

    Существует несколько различных типов циклов, но цикл For Next Loop является наиболее распространенным. Ознакомьтесь с моей углубленной статьей «For Next Loop» в VBA для более подробной информации об этой обязательной технике кодирования.

    # 9 — Используйте Option Explicit

    Это еще одна спорная тема, но я требую (вежливо прошу), чтобы все участники моего курса VBA Pro использовали Option Explicit.

    Итак, что это и почему?

    Опция Explicit требует от нас объявить все переменные. Когда
    мы видим строки кода с инструкциями Dim в верхней части макроса, это объявляет
    переменную.

    Мы в основном говорим VBA создать переменную в памяти для
    последующего использования во время выполнения кода. Затем мы можем установить
    значения или ссылки на объекты для этих переменных в макросе под оператором
    Dim.

    Основное преимущество Option Explicit заключается в том, что
    он предотвращает опечатки и экономит время. Редактор VB выдаст сообщение
    «Ошибка компиляции: переменная не определена» при попытке запустить код, если
    переменная в коде не объявлена. Также будет выделена переменная, чтобы вы могли
    объявить ее или исправить опечатку.

    Если у вас нет Option Explicit и неправильно написана
    переменная, код все равно будет работать и может привести к ошибкам в
    результатах. Если ваш макрос длинный, то может понадобиться много времени,
    чтобы найти эти опечатки. Доверьтесь мне. Там было сделано это!

    Опция Explicit предотвращает эти ошибки и помогает вам
    оставаться в здравом уме. 🙂

    Чтобы включить Option Explicit, просто введите слова Option
    Explicit в верхней части модуля кода. Вы также можете сделать так, чтобы VB
    Editor автоматически добавлял слова в новые модули кода, для этого перейдите в
    Инструменты> Параметры> установите флажок «Требовать декларацию
    переменной». Опция Explicit теперь будет отображаться в верхней части каждого
    нового кода модуля, который вы создаете.

    # 10 — Таблицы Excel (ListObjects)

    Использование таблиц Excel в наших книгах дает ряд преимуществ. Они экономят время благодаря форматированию данных, автоматическому заполнению формул и отлично работают в качестве источника сводной таблицы.

    Таблицы Excel также значительно упрощают написание кода VBA
    для динамических диапазонов данных. Это список или набор данных, в котором
    количество строк или столбцов постоянно меняется по мере получения новых /
    обновленных данных.

    Например, следующая строка кода ссылается на ячейки в
    диапазоне A2: A15.

    Range("A2:A10").Font.Bold = True
    

    Это жестко заданный диапазон. Если вы добавляете новые
    данные внизу, вам придется вручную изменить код, чтобы включить новые строки.

    Однако, если мы храним данные в таблице Excel и ссылаемся на
    столбец таблицы, нам не нужно об этом беспокоиться.

    Следующая строка кода ссылается на тот же столбец.

    Range("Table1[Date]").Font.Bold = True
    

    Преимущество в том, что код будет автоматически включать
    новые строки, добавленные в таблицу. Не требуется ручное обновление или
    обслуживание кода.

    Мы также можем ссылаться на таблицы Excel с помощью объекта,
    свойств и методов ListObjects в VBA.

    ActiveSheet.ListObjects("Table57").ListColumns("Date").DataBodyRange.Font.Bold = True
    

    Определенно есть некоторые преимущества использования ListObjects, когда дело доходит до изменения структуры таблицы (добавление / удаление строк / столбцов) и свойств, а также циклического перемещения по таблице. Читайте статью моего хорошего друга Криса Ньюмана о ListObjects в VBA, в ней множество примеров.

    # 11 — Получите код с помощью Macro Recorder

    Macro Recorder — удивительная особенность Excel и VBA. Он
    создает код VBA при выполнении действий в Excel.

    Например, после того, как мы включили макрос-рекордер, мы
    можем продолжать выполнять свою обычную работу в Excel, такую как написание
    формул или копирование и вставка данных. Макро-рекордер создаст весь код VBA
    для этих действий и сохранит его в модуле кода.

    Это отличный инструмент для использования, когда мы начинаем
    с макросов. И это также отличный инструмент для изучения и получения фрагментов
    кода. Объектная модель Excel огромна, и для меня невозможно запомнить все
    ссылки на свойства, методы и объекты. Таким образом, средство записи макросов —
    отличный способ получить некоторый код для сводной таблицы, объекта списка,
    среза, фигуры или любого другого объекта, с которым вы не знакомы.

    Макро-рекордер также имеет свои ограничения. Мы НЕ
    собираемся создавать код для циклов, если операторы, обработка ошибок, окна
    сообщений и т. Д. Нам нужно научиться писать код для реализации этих более
    продвинутых методов, которые позволяют нам полностью автоматизировать процессы
    и создавать приложения в Excel.

    # 12 — The Immediate Window

    Immediate Window в редакторе VB позволяет нам запускать одну строку кода. Мы можем запустить действие (метод) над объектом или вернуть результат кода обратно в Immediate Window. Может быть, мы хотим определить, сколько рабочих листов в рабочей книге.

    Введите ?Worksheets.Count и нажмите Enter. Результат будет отображен в строке ниже.

    Immediate Window также является местом, в которое выводится метод Debug.Print.

    Сочетание клавиш для открытия окна Immediate в редакторе VB
    — Ctrl + G

    За подробностями обращайтесь к моей статье о 5-ти вариантах использования Immediate Window в VBA.

    # 13 — Назначьте сочетание клавиш для макроса

    Мы также можем назначить сочетания клавиш для запуска часто используемых макросов. Я рекомендую хранить эти макросы в вашей личной книге макросов.

    Чтобы назначить сочетание клавиш:

    1. Нажмите кнопку «Макросы» на вкладке
      «Разработчик» или «Просмотр» на ленте.
    2. Выберите файл, содержащий макрос, в
      раскрывающемся списке «Макросы в».
    3. Выберите макрос из списка.
    4. Нажмите кнопку «Опции…».
    5. Введите букву в поле «Сочетание клавиш»,
      которому вы хотите назначить макрос. Все ярлыки начнутся с Ctrl. Вы можете
      удерживать клавишу Shift при наборе буквы, чтобы создать комбинацию клавиш Ctrl
      + Shift. Обычно это рекомендуется, потому что большинство комбинаций клавиш
      Ctrl + уже имеют выделенные сочетания клавиш в Excel.
    6. Нажмите ОК и закройте окно макроса.
    7. Теперь вы можете нажать комбинацию клавиш для
      запуска назначенного макроса.

    # 14 — Проверьте, выбран ли диапазон

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

    Например, у меня есть макрос,
    который удаляет пустые строки в выбранном диапазоне
    . Для правильной работы
    этого макроса пользователю необходимо сначала выбрать диапазон ячеек.

    Вот код, который проверит, выбран ли диапазон.

    ' Проверьте, что диапазон выбран
    If TypeName(Selection) <> "Range" Then
      MsgBox "Please select a range first.", vbOKOnly, "Select Range"
      Exit Sub
    End If
    

    Функция TypeName возвращает тип данных или имя объекта для
    данной переменной или объекта. В этом случае он оценивает Selection и
    возвращает тип выбранного объекта. Если это не (<>) диапазон, тогда
    оператор If верен.

    Обычно вы хотите поместить это в начало макроса. Если диапазон НЕ выбран, появится окно сообщения (всплывающее), в котором пользователю будет предложено выбрать диапазон. Строка Exit Sub завершит макрос.

    # 15 — Ctrl + Y, чтобы удалить строку кода

    В редакторе VB Ctrl + Y удаляет строку кода, в которой
    находится текстовый курсор.

    Это создает большую путаницу, поскольку Ctrl + Y обычно
    используется для команды «Повторить» практически во всех других приложениях,
    включая Excel!

    Если вы посмотрите на меню «Правка» в редакторе VB, то
    увидите, что для «Вернуть» нет выделенного ярлыка. Мы можем использовать Alt,
    E, R в качестве альтернативного ярлыка для Redo.

    Это всего лишь одна из тех странных причуд VBA, которые
    действительно приятно знать.

    # 16 — Ctrl + i для быстрой информации

    Это еще одна отличная комбинация клавиш, которую нужно
    знать. Ctrl + i отображает всплывающую подсказку, которую вы видите при
    написании или выполнении кода. Это позволяет вам видеть все параметры в
    свойстве, методе или функции.

    Чтобы использовать сочетание клавиш Ctrl + i:

    1. Поместите текстовый курсор в слово, для которого
      вы хотите отобразить всплывающую подсказку.
    2. Нажмите Ctrl + i.
    3. Появится всплывающая подсказка.
    4. Нажмите Escape, чтобы закрыть его или переместить
      курсор.

    Если в строке выделена переменная, и вы хотите видеть
    информацию о параметре вместо значения / типа данных переменной, нажмите Ctrl +
    Shift + i, чтобы просмотреть информацию о параметре.

    # 17 — Ctrl + J открывает раскрывающийся список IntelliSense

    Сочетание клавиш Ctrl + J откроет раскрывающееся меню Intellisense, в котором отображается список объектов, свойств, методов, переменных и т.д.

    Обычно я использую его, когда набираю частичную строку кода и заканчиваю ее точкой, например Range («A1»).

    Затем я хочу вернуться к этой строке и увидеть выпадающий
    Intellisense. Нажатие Ctrl + J открывает меню. В противном случае вы должны
    удалить период и ввести его снова.

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

    № 18 — Функции листа

    Знаете ли вы, что мы можем использовать функции рабочего листа в VBA? Это функции, которые мы используем в формуле в Excel, такие как: vlookup, match, countif, max, min и т.д.

    Тип WorksheetFunction. в макросе, чтобы увидеть список всех
    функций Excel, которые доступны в VBA.

    На мой взгляд, это лучшее из обоих миров. Мы можем
    использовать возможности функций Excel в нашем коде VBA.

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

    Функция рабочего листа, которую я чаще всего использую в VBA — это Match. Мы можем использовать Match для поиска значения и возврата номера строки или столбца ячейки, содержащей соответствующее значение. Иногда это может быть проще, чем с помощью метода Range.Find. Ознакомьтесь с моей статьей и видео о том, как найти последнюю использованную ячейку на листе, чтобы узнать больше о методе Range.Find.

    Скачать PDF

    Вы можете скачать печатную версию статьи в формате PDF.

    Какой ваш любимый совет для VBA?

    Надеюсь, вам понравился этот список и вы узнали что-то новое. Возможно, это вдохновило вас узнать больше о макросах и VBA.

    Также мне интересно, какой ваш любимый трюк, который не был включен в эту статью. Пожалуйста, оставьте комментарий ниже и поделитесь своим. Здесь нет правильных или неправильных ответов, но это отличный способ учиться друг у друга.

    Вставить и запустить макросы VBA в Excel

    Функция SpellCurr (ByVal MyNumber, _
    Необязательный MyCurrency As String = «Rupee», _
    Необязательный MyCurrencyPlace As String = «P», _
    Дополнительно MyCurrencyDecimals As String = «Paisa», _
    Необязательный MyCurrencyDecimalsPlace As String = «S»)

    ‘********************************************** ************************************************* ***************
    ‘* На основе UDF SpellNumbers от Microsoft, который обрабатывает только доллары в качестве валюты *
    ‘ * UDF, модифицированный Йогешем Гуптой, smiley123z @ gmail.com, Ygblogs.blogspot.com 21 июля 2009 г. *
    ‘* UDF изменен 4 сентября 2009 г., чтобы сделать ввод валюты необязательным, по умолчанию он будет использовать индийскую валюту *
    ‘ * Этот измененный UDF может использоваться для любой валюты в в случае, если вы вводите валюту *
    ‘* Пользователь может определить место префикса и суффикса для валюты и CurrencyDecimals *
    ‘ * MyNumber = Числовое значение, которое необходимо преобразовать в слова *
    ‘* MyCurrency = Имя вашей валюты — i.е. Доллар для США *
    ‘* MyCurrencyPlace = Префикс или суффикс валюты, используйте «P» для префикса и «S» для суффикса *
    ‘ * MyCurrencyDecimals = Название вашей валюты в десятичной системе — например, цент для США *
    ‘* MyCurrencyDecimalsPlace = Prefix или суффикс десятичных знаков валюты, используйте «P» для префикса и «S» для суффикса *
    ‘**************************** ************************************************* **********************************

    Dim Rupees, Paisa, Temp
    Dim DecimalPlace, Count

    ReDim Place (9) As String
    Place (2) = «Тысяча»
    Place (3) = «Миллион»
    Place (4) = «Миллиард»
    Place (5) = «Триллион»

    ‘Строковое представление суммы.
    MyNumber = Trim (Str (MyNumber))

    ‘Позиция десятичного разряда 0, если его нет.
    DecimalPlace = InStr (MyNumber, «.»)

    ‘Преобразуйте Пайсу и установите MyNumber в рупию.
    Если DecimalPlace> 0, то
    Paisa = GetTens (Left (Mid (MyNumber, DecimalPlace + 1) & _
    «00», 2))
    MyNumber = Trim (Left (MyNumber, DecimalPlace — 1))
    End If

    Счетчик = 1

    Do While MyNumber «»
    Temp = GetHundreds (Right (MyNumber, 3))
    If Temp «» Then Rupees = Temp & Place (Count) & Rupees
    If Len (MyNumber)> 3 Тогда
    MyNumber = Left (MyNumber, Len (MyNumber) — 3)
    Else
    MyNumber = «»
    End If
    Count = Count + 1

    Петля

    Если MyCurrencyPlace = «P», то
    Выбрать случай рупий
    Случай «»
    рупий = MyCurrency & «s» & «Zero»
    Case «One»
    рупий = MyCurrency & «One»
    Case Else
    Rupees = MyCurrency & » s «& Rupees
    End Select
    Else
    Select Case Rupees
    Case» «
    Rupees =» Zero «& MyCurrency &» s «
    Case» One «
    Rupees =» One «& MyCurrency
    Case Else
    Rupees = Rupees & «» & MyCurrency & «s»
    End Выберите
    End If

    Если MyCurrencyDecimalsPlace = «S» Тогда
    Выберите вариант Paisa
    Case «»
    Paisa = «Only»
    Case «One»
    Paisa = «and One» & MyCurrencyDecimals & «Only»
    Case Else
    Paisa = «и» & Paisa & «» & MyCurrencyDecimals & «s Only»
    End Select
    Else
    Select Case Paisa
    Case «»
    Paisa = «Only»
    Case «One»
    Paisa = «and» & MyCurrencyDecimals & «One» & «Only «
    Case Else
    Paisa =» и «& MyCurrencyDecimals &« s »& Paisa &« Only »
    End Select
    End If

    SpellCurr =

    рупий и пайса

    Конечная функция

    ‘******************************************
    ‘ Преобразует число с 100-999 в текст *
    ‘**************************************** **

    Функция GetHundreds (ByVal MyNumber)
    Dim Result As String
    If Val (MyNumber) = 0 Then Exit Function
    MyNumber = Right («000» & MyNumber, 3)
    ‘Преобразование разряда сотен.
    Если Mid (MyNumber, 1, 1) «0», то
    Result = GetDigit (Mid (MyNumber, 1, 1)) & «Hundred»
    End If

    ‘Конвертируем десятки и единицы.
    Если Mid (MyNumber, 2, 1) «0», то
    Result = Result & GetTens (Mid (MyNumber, 2))
    Else
    Result = Result & GetDigit (Mid (MyNumber, 3))
    End If
    GetHundreds = Результат
    Конечная функция

    ‘********************************************
    ‘ Преобразует число от 10 до 99 в текст.*
    ‘********************************************
    Функция GetTens (TensText)

    Dim Result As String
    Result = «» ‘Обнулить временное значение функции.
    If Val (Left (TensText, 1)) = 1 Then ‘Если значение между 10-19 …
    Select Case Val (TensText)
    Case 10: Result = «Ten»
    Case 11: Result = «Eleven»
    Случай 12: Результат = «Двенадцать»
    Случай 13: Результат = «Тринадцать»
    Случай 14: Результат = «Четырнадцать»
    Случай 15: Результат = «Пятнадцать»
    Случай 16: Результат = «Шестнадцать»
    Случай 17: Результат = «Семнадцать»
    Случай 18: Результат = «Восемнадцать»
    Случай 19: Результат = «Девятнадцать»
    Случай Иначе
    Конец Выберите
    Иначе ‘Если значение между 20-99…
    Select Case Val (Left (TensText, 1))
    Case 2: Result = «Twenty»
    Case 3: Result = «Thirty»
    Case 4: Result = «Forty»
    Case 5: Result = «Fifty»
    Случай 6: Результат = «Шестьдесят»
    Случай 7: Результат = «Семьдесят»
    Случай 8: Результат = «Восемьдесят»
    Случай 9: Результат = «Девяносто»
    Случай Иначе
    Конец Выбрать

    Result = Result & GetDigit _
    (Right (TensText, 1)) ‘Получить одно место.
    End If
    GetTens = Result
    End Function

    ‘******************************************
    ‘ Преобразует число от 1 до 9 в текст.*
    ‘******************************************

    Функция GetDigit (Digit)
    Select Case Val (Digit)
    Case 1: GetDigit = «One»
    Case 2: GetDigit = «Two»
    Case 3: GetDigit = «Three»
    Case 4: GetDigit = «Four»
    Случай 5: GetDigit = «Five»
    Случай 6: GetDigit = «Six»
    Случай 7: GetDigit = «Seven»
    Случай 8: GetDigit = «Eight»
    Случай 9: GetDigit = «Nine»
    Case Else: GetDigit = «»
    Выбор конца
    Окончание функции

    .

    vba — вставить изображение в макрос Excel, который принимает имя файла как ссылку

    Переполнение стека

    1. Около
    2. Продукты

    3. Для команд
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Переполнение стека для команд
      Где разработчики и технологи делятся частными знаниями с коллегами

    3. Вакансии
      Программирование и связанные с ним технические возможности карьерного роста

    4. Талант
      Нанимайте технических специалистов и создавайте свой бренд работодателя

    5. Реклама
      Обратитесь к разработчикам и технологам со всего мира

    6. О компании

    Загрузка…

    .

    excel — Использование Python для внедрения макросов в электронные таблицы

    Переполнение стека

    1. Около
    2. Продукты

    3. Для команд
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Переполнение стека для команд
      Где разработчики и технологи делятся частными знаниями с коллегами

    3. Вакансии
      Программирование и связанные с ним технические возможности карьерного роста

    4. Талант
      Нанимайте технических специалистов и создавайте свой бренд работодателя

    5. Реклама
      Обратитесь к разработчикам и технологам со всего мира

    6. О компании

    Загрузка…

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *