Скачать готовую таблицу excel с макросами

Полезные макросы Excel для автоматизации рутинной работы с примерами применения для разных задач.

Примеры макросов для автоматизации работы

makrosy-filtra-svodnoy-tablicyМакросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.

makros-svodnoy-tablicyМакрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.

makrosy-dlya-formatirovaniya-yacheekМакросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.

makros-pereimenovat-listyМакрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.



Работа с книгами


Макрос 1. Создание новой рабочей книги с нуля
Макроc 2. Сохранение книги при изменении определенной ячейки/диапазона
Макрос 3. Сохранение рабочей книги перед закрытием
Макрос 4. Защита рабочего листа в книге перед закрытием
Макрос 5. Снятие защиты с листа при открытии Excel-файла
Макрос 6. Открыть книгу на нужном листе
Макрос 7. Открытие конкретной книги, определенной пользователем
Макрос 8. Определяем, открыта ли книга
Макрос 9. Определяем, существует ли книга в папке
Макрос 10. Обновляем все связи в открытых книгах
Макрос 11. Закрываем сразу все книги
Макрос 12. Открыть все рабочие книги в папке
Макрос 13. Распечатать все книги в папке
Макрос 14. Не даем закрыть книгу до тех пор, пока не заполнит ячейку
Макрос 15. Создаем резервную копию текущей книги с сегодняшней датой

Работа с листами


Макрос 16. Добавляем новый рабочий лист и присваиваем имя
Макрос 17. Удалить все листы, кроме активного
Макрос 18. Скрыть все, кроме активного рабочего листа
Макрос 19. Отобразить все листы книги
Макрос 20. Перемещение рабочих листов
Макрос 21. Сортировка листов по названию
Макрос 22. Группа листы по Цвету ярлычка
Макрос 23. Скопировать лист в новую книгу
Макрос 24. Создать новую рабочую книгу для каждого листа
Макрос 25. Печать листов
Макрос 26. Защитить все листы
Макрос 27. Снять защиту со всех листов
Макрос 28. Создание оглавления
Макрос 29. Изменение масштаба изображения  рабочего листа с помощью двойного щелчка
Макрос 30. Выделить столбец активной строки

Выделение и изменение диапазонов


Макрос 31. Выбор и форматирование диапазона
Макрос 32. Создание и выбор именованных диапазонов
Макрос 33. Перебор с помощью ряда клеток
Макрос 34. Выбор и форматирование  диапазонов
Макрос 35. Вставка пустых строк в диапазоне
Макрос 36. Отобразить все скрытые строки и столбцы
Макрос 37. Удаление пустых строк
Макрос 38. Удаление пустых столбцов
Макрос 39. Выбор и форматирование всех формул в рабочем журнале
Макрос 40. Найдите и выберите первую пустую строку или столбец
Макрос 41. Применить дополнительный цвет заливки
Макрос 42. Отсортировать диапазоны по двойному щелчку
Макрос 43. Ограничение диапазона прокрутки в той или иной области
Макрос 44. Автоматически задать область печати листа

Работа с данными


Макрос 45. Копирование и вставка диапазона
Макрос 46. Преобразование всех формул в диапазоне в значения
Макрос 47. Преобразуем текстовых значений в числовые
Макрос 48. Преобразование тире в минус
Макрос 49. Удаляем лишние пробелы из всех ячеек в диапазоне
Макрос 50. Отсекаем слева 5 знаков в каждой ячейки диапазона
Макрос 51. Добавляем в ячейку недостающие нули
Макрос 52. Заменить пустые ячейку нулём
Макрос 53. Добавление текста в начало или конец ячейки
Макрос 54. Создание макроса преобразования данных
Макрос 55. Очистка данных (непечатаемые символы)
Макрос 56. Выделим дубликаты в диапазоне данных
Макрос 57. Скрываем повторяющиеся строки
Макрос 58. Выборочно скрываем стрелки автофильтра
Макрос 59. Копируем отфильтрованные строки в новую книгу
Макрос 60. Создание нового листа для каждого элемента в Автофильтре
Макрос 61. Показать отфильтрованные столбцы в строке состояния

Работа со сводными таблицами


Макрос 62: Создание обратной совместимости сводной таблицы
Макрос 63. Обновление всех сводных таблиц книги
Макрос 64. Создание «описи» всех сводной таблицы книги
Макрос 65. Создаем все сводные таблицы, используя тот же кэш данных
Макрос 66. Скрываем все промежуточные итоги в сводной таблице
Макрос 67. Изменяем названия данных всех полей сводной
Макрос 68. Принудительное суммирование для всех данных сводной
Макрос 69. Применить числовой формат для всех элементов данных
Макрос 70. Сортировка  полей сводной в алфавитном порядке
Макрос 71. Применить пользовательскую сортировку к элементам данных
Макрос 72: Ставим защиту на сводную таблицу
Макрос 73. Применять ограничения сводного поля
Макрос 74. Автоматическое удаление листов с детализацией сводной
Макрос 75. Печать сводной таблицы для каждого элемента фильтра
Макрос 76. Создание нового файла для каждого элемента фильтра
Макрос 77. Готовим диапазон данных для сводной таблицы

Работа с диаграммами и графиками


Макрос 78. Изменение размера  диаграмм на рабочем листе
Макрос 79. Привязываем график к определенному диапазону
Макрос 80. Создание набора бессвязных диаграмм
Макрос 81. Печать всех диаграмм на рабочем листе
Макрос 82. Отмечаем лучшее и худшее значение на
Макрос 83. Одинаковые цвета для значений на разных диаграммах
Макрос 84. Соответствие цвета диаграмм цвету диапазонов


Макрос 85. Отправка активной книги почтой (вложение)
Макрос 86. Отправка диапазон значений в качестве вложения
Макрос 87. Отправка одного листа в качестве вложения
Макрос 88. Отправить письмо с ссылкой на наши файлы
Макрос 89: Рассылка писем с добавлением адресов в наш список контактов
Макрос 90. Сохранение всех вложений в отдельной папке
Макрос 91. Сохранение определенных вложений в папку

Взаимодействие с другими приложениями Office


Макрос 92. Запуск запроса доступа из Excel
Макрос 93. Запуск макроса Access из Excel
Макрос 94. Открытие отчета Access из Excel
Макрос 95. Открытие формы доступа из Excel
Макрос 96. Сжатие базы данных Access из Excel
Макрос 97. Отправка данных Excel в документ в формате Word
Макрос 98. Делаем Слияние с документом в формате Word
Макрос 99. Отправка данных Excel в презентации PowerPoint
Макрос 100. Отправка  Excel диаграмм в PowerPoint презентации
Макрос 101. Преобразование рабочей книги в презентации PowerPoint

Взаимодействие с другими приложениями Office
научимся работать с Word, Access и PowerPoint
Макрос 92. Запуск запроса доступа из Excel
Макрос 93. Запуск макроса Access из Excel
Макрос 94. Открытие отчета Access из Excel
Макрос 95. Открытие формы доступа из Excel

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

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

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

Моя история

Я ещё со школы начал изучать VBA. Читал книжки, пользовался макрорекордером (подсматривал код, изменял под себя).
Когда ты школьник, то верх мастерства сделать калькулятор или игру. Стал студентом — разработал инвестиционный проект строительства свиноводческого комплекса (вводишь пару основных цифр и программа говорит какая мощность комплекса нужна, сколько нужно людей и денег, плюс тонную документов с деталями цикла производства и план-график выхода на проектную мощность).

Это всё, конечно, интересно и круто, но не сравнить с написанием макросов для решения реальных бизнес-задач.

Представьте на минуту, что всю вашу рутину:

  • привести таблицу в «нормальный» вид;
  • собрать данные из нескольких файлов в один;
  • отфильтровать простыню из данных по нескольким критериям;
  • построить сводную таблицу, график и отправить боссу
  • тонна аналогичных скучных задач.

можно поручить Excel. ОДИН РАЗ прописать логику с помощью VBA и всё! Да, я знаю, что написание макроса иногда может занять неделю, а то и месяц. Но сколько вы каждый день/неделю/месяц тратите время на ерунду?

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

Про сборник

Изначально я не хотел никому и не при каких обстоятельствах показывать сборник. Максимум ученикам и то, какую-нибудь урезанную версию (т..к постоянно добавляю новые коды). С рождением сына я пересмотрел свою позицию и захотел оставить след в истории (пафосно звучит, ну и пусть).

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

Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий. Как только добавлю код — удалю комментарий, а про вас напишу в статье.

В этой огромной статье я собрал уже более 200 макросов, для удобства разбил их по группам.

Вы сможете использовать эти коды, даже если до этого не использовали VBA.

Работа с Excel файлами (WorkBook)

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

Назад к списку тем


Работа с листами Excel файла (WorkSheets)

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

Назад к списку тем


Работа с диапазонами (Range)

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

  • Как выбрать и изменить форматирование диапазона
  • Как создать и выбрать именованный диапазон
  • Как сделать перебор диапазона ячеек
  • Как выбрать и форматировать диапазон
  • Как вставить пустые строки в диапазон
  • Как отобразить все скрытые строки и столбцы
  • Как удалить пустые строки
  • Как удалить пустые столбцы
  • Как отобрать и отформатировать все формулы на листе
  • Как найти первую пустую строку или столбец
  • Как применить дополнительный цвет заливки
  • Как отсортировать диапазоны по двойному щелчку
  • Как ограничить диапазон прокрутки в той или иной области
  • Как автоматически задать область печати листа

Назад к списку тем


Макросы для работы с данными

Эта часть посвящена управлению данными: их очистке, форматированию и т. д.

  • Как скопировать и вставить диапазон
  • Как преобразовать все формулы в диапазон с значениями
  • Как преобразовать текстовые значения в числовые
  • Как преобразовать тире в минус
  • Как удалить лишние пробелы из всех ячеек в диапазоне
  • Как отсечь слева 5 знаков в каждой ячейке диапазона
  • Как добавить в ячейку недостающие нули
  • Как заменить пустые ячейки нулём
  • Как добавить текст в начало или конец ячейки
  • Как создать макрос преобразования данных
  • Как очистить данные от непечатаемых символов
  • Как выделить дубликаты в диапазоне данных
  • Как скрыть повторяющиеся строки
  • Как выборочно скрыть стрелки автофильтра
  • Как скопировать отфильтрованные строки в новый Excel файл
  • Как создать новый лист для каждого элемента в автофильтре
  • Как показать отфильтрованные столбцы в строке состояния

Назад к списку тем


Макросы для сводных таблиц

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

Назад к списку тем


Макросы для графиков

  • Как изменить размер диаграмм на рабочем листе
  • Как привязать график к определенному диапазону
  • Как создать набора бессвязных диаграмм
  • Как распечатать всех диаграммы на рабочем листе
  • Как отметить первое и последнее значение на графике
  • Как сопоставить цвет диаграммы и исходных данных
  • Как сопоставить цвет точек графика и исходных данных

Назад к списку тем


Макросы для отправки писем из Excel

  • Как отправить Excel файл почтой (как вложение)
  • Как отправить диапазон значений в качестве вложения
  • Как отправить один листа файла в качестве вложения
  • Как отправить письмо со ссылкой на наши файлы
  • Как разослать письма с добавлением адресов в наш список контактов
  • Как сохранить все вложения в отдельной папке
  • Как сохранить определенные вложения в папку

Назад к списку тем


Макросы для работы с Access

  • Как выполнить запрос Access из Excel
  • Как запустить макрос Access из Excel
  • Как открыть отчет Access из Excel
  • Как открыть форму Access из Excel
  • Как сжать базу данных Access из Excel

Назад к списку тем


Макросы для работы с MS Word

  • Как отправить данные из Excel в Word документ
  • Как сделать слияние с Word документом

Назад к списку тем


Макросы для работы с PowerPoint

  • Как отправить данные Excel в PowerPoint
  • Как отправить график из Excel в PowerPoint
  • Как преобразовать рабочую книгу в презентацию PowerPoint

Назад к списку тем


Уже добавили страницу в закладки? Зря, я же пополняю список)

В последнее время во многих детских садах стало обязательным ведение журналов-фильтров утреннего приема детей, в которых указывается температура тела, состояние зева, состояние кожи и т. д. ребенка при приеме сутра в детский сад. Читать далее «Журнал — фильтр для утреннего приема детей в детском саду в таблице Excel. Файл для скачивания.»

Таблица Менделеева для скачивания в формате Excel.

Добрый день.

Дмитрий Иванович Менделеев  родился в г. Тобольск Тобольской губернии Российской  империи   8 февраля 1834 года в семье директора тобольской  гимназии. Читать далее «Таблица Менделеева для скачивания в «Excel»»

Таблица (смета) образец расходов на охрану труда.

Таблица –калькуляция расходов на охрану труда  состоит из следующих пунктов: Читать далее «Таблица (смета) образец расходов на охрану труда. Скачать бесплатно. Ссылка»

Таблицы Шульте. (архив для скачивания).

Таблицы Шульте (Горбова) представляют собой  небольшие таблицы с различными элементами в ячейках (цифры, буквы, численно-буквенные коды, картинки). Читать далее «Таблицы Шульте. (Ссылка на архив для скачивания).»

Универсальный передаточный документ (УПД) форма с формулами в «Excel».

Универсальный передаточный документ применяется для документооборота между компаниями и может объединить в себе элементы счета-фактуры и иных первичных документов(накладная, акт выполненных работ и т.д.). Читать далее «Скачать универсальный передаточный документ (УПД) в формате «Excel».»

Форма  коммерческого предложения  (КП) в Excel

Добрый день.

Одним из основных способов заявить потенциальному клиенту или партнеру о своем товаре или услуге является формирование и отправка Коммерческого предложения или просто КП. Читать далее «Форма (бланк) коммерческого предложения (КП) в таблице Excel (Файл для бесплатного скачивания)»

На этой странице можно бесплатно скачать бланк (шаблон) товарной накладной в файле «Excel».

Товарная накладная  относится к первичным бухгалтерским документам и предназначена, для документального оформления изменения  права собственности (путем продажи, отпуска) на товар или иные материальные ценности. Читать далее «Бланк (шаблон) накладной для бесплатного скачивания.»

Как выполнить поиск значений в программе «Excel» .

Поиск в Эксель

Поиск в Эксель

Далее описаны несколько вариантов поиска и фильтрации данных в таблице «Эксель». Читать далее «Поиск значений в таблице «Excel» . Макрос.»

«Журнал учета и содержания средств защиты»

Шапка Журнала учета средств защиты

Шапка Журнала учета средств защиты

На данной странице нашего сайта RuExcel.ru Вы можете скачать шаблон документа «Журнал учета и содержания средств защиты» в формате Excel. Читать далее ««Журнал учета и содержания средств защиты» в файле «Excel»»

Как сделать план рассадки гостей в Excel по размерам.

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

Рассадка гостей на плане

Рассадка гостей на плане

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

Как переносить табличные данные с сайта в «Excel».

Если вы обладаете достаточным количеством времени и ресурсов перенести данные с сайта в таблицу «Excel» можно в «ручном режиме». Тот случай, когда таблица на сайте выделяется курсором мыши, копируется и вставляется в файл «Эксель».   Естественно, этот способ долог и неудобен.

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

 О том, что такое надстройка «Power Query».

В данной статье я расскажу Вам о возможностях надстройки «Power Query».
Насколько мне известно, эта чудесная надстройка была разработана сторонними программистами (не Microsoft) несколько лет назад для программы «Эксель» версий 2013 и выше. Читать далее ««Power Query» в «Excel» — что это?»

Создание акта выполненных работ в «Excel». (Скачать пример).

Акт выполненных работ один из самых часто используемых первичных  документов.

Читать далее «Как создать акт выполненных работ в «Excel». (Скачать пример)»

Как сделать своими руками или скачать готовый генератор хештегов для соц. сетей: youtube, ВК, одноклассники и т.д.

Скачать генератор хештегов.

***

Скачать генератор хештегов НА Андроид.

Хештеги (хэштеги) — это слова (метки), обозначенные специальным символом «#» (решетка) отображающие содержание публикуемого Вами контента (наполнения): видео, картинок, текста. Читать далее «Генератор хештегов — как сделать своими руками или скачать готовый (хештеги в соцсети)»

Вопрос  том, где скачать график работы и ответ на него.

Добрый день.

Одним из часто задаваемых вопросов является вопрос: «Где можно скачать готовый график работы в файле формата Excel?». «Экселевский» график работ удобен тем, что его можно заполнять на компьютере, редактировать, корректировать и вносить различные правки. Читать далее «Скачать график работы в Excel файле»

О том, как оставлять комментарии в формуле Excel  для других пользователей.

Самый простой и известный всем способ оставить комментарий к ячейке – это опция «примечание». Читать далее «Как оставлять комментарии в формуле Excel»

Для примера представим, что у нас есть 3 магазина со складами. На складах этих магазинов хранится товар в разных количествах, который периодически продается или списывается. Читать далее «Определение наличия товара на складах магазинов при помощи таблицы Excel»

Как увеличить производительность труда подчиненных в программе Excel при помощи таблицы сочетания горячих клавиш.

Если вы являетесь руководителем подразделения, в котором основное рабочее время тратится на обработку таблиц в Excel, Вы можете увеличить производительность своих подчиненных, потратив несколько минут на доведение до подчиненных основных сочетаний горячих клавиш. Объясните один раз, как пользоваться сочетаниями клавиш. Раздайте своим людям материал, приведенный ниже, и через пару-тройку недель проверьте, насколько хорошо они его усвоили. При усвоении даже 30-40% информации из приведенной ниже таблицы производительность персонала увеличивается на 20-25% , вместо 30 минут на заполнение таблицы уходит 22-23 минуты. Читать далее «Как увеличить производительность труда или Таблица: Сочетание горячих клавиш в «Эксель»:»

Простейший кредитный калькулятор или как посчитать кредит в Excel самостоятельно.

Читать далее «Простой расчет кредита в программе Excel.»

Суммирование значений по модулю (абсолютных величин чисел) без учета знака «минус».

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

Составления графика проведения футбольных матчей совмещенного с турнирной таблицей в Excel.

Читать далее «График — турнирная таблица по футболу в программе Excel.»

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

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

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

Table of Contents

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

В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!

1. Копирование данных из одного файла в другой.

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

Sub CopyFiletoAnotherWorkbook()
    
        Sheets("Example 1").Range("B4:C15").Copy
    
        Workbooks.Add
    
        ActiveSheet.Paste
    
        Application.DisplayAlerts = False
    
        ActiveWorkbook.SaveAs Filename:="C:TempMyNewBook.xlsx"
    
        Application.DisplayAlerts = True
End Sub

2. Отображение скрытых строк

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

Sub ShowHiddenRows()
    Columns.EntireColumn.Hidden = False
    Rows.EntireRow.Hidden = False
End Sub

3. Удаление пустых строк и столбов

Пустые строки в Excel — может быть проблемой для обработки данных. Вот как избавиться от них:

Sub DeleteEmptyRowsAndColumns()
    
        Dim MyRange As Range
        Dim iCounter As Long
    
        Set MyRange = ActiveSheet.UsedRange
        
        For iCounter = MyRange.Rows.Count To 1 Step -1
    
           If Application.CountA(Rows(iCounter).EntireRow) = 0 Then
               Rows(iCounter).Delete
               
               
           End If
    
        Next iCounter
    
        For iCounter = MyRange.Columns.Count To 1 Step -1
    
               If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
                Columns(iCounter).Delete
               End If
    
        Next iCounter      
End Sub

4. Нахождение пустых ячеек

Sub FindEmptyCell()
    ActiveCell.Offset(1, 0).Select
       Do While Not IsEmpty(ActiveCell)
          ActiveCell.Offset(1, 0).Select
       Loop
End Sub

#### 5. Заполнение пустых ячеек

Как упоминалось ранее, пустые ячейки препятствуют обработке данных и созданию сводных таблиц. Вот один примерный код, который заменяет все пустые ячейки на 0. Этот макрос имеет очень большое приложение, потому что Вы можете использовать его для поиска и замены результатов N/A, а также других символов, таких как точки, запятые или повторяющиеся значения:

Sub FindAndReplace()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Select Case MsgBox("Can't Undo this action.  " & _
                            "Save Workbook First?", vbYesNoCancel)
            Case Is = vbYes
            ThisWorkbook.Save
            Case Is = vbCancel
            Exit Sub
        End Select
    
        Set MyRange = Selection
    
        For Each MyCell In MyRange
    
            If Len(MyCell.Value) = 0 Then
                MyCell = 0
            End If
    
        Next MyCell
End Sub

#### 6. Сортировка данных

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

NB: Здесь нам нужно поставить этот код в Sheet1 (папка Microsoft Excel Objects), а не в Module1 (папка Modules):

Private Sub Worksheet_BeforeDoubleClick (ByVal Target as Range, Cancel As Boolean)
    
        Dim LastRow As Long
    
        LastRow = Cells (Rows.Count, 1) .End (xlUp) .Row
    
        Rows ("6:" & LastRow) .Sort _
        Key1: = Cells (6, ActiveCell.Column), _
        Order1: = xlAscending
End Sub

#### 7. Удаление пустых пространств

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

Sub TrimTheSpaces()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Select Case MsgBox("Can't Undo this action.  " & _
                            "Save Workbook First?", vbYesNoCancel)
            Case Is = vbYes
            ThisWorkbook.Save
            Case Is = vbCancel
            Exit Sub
        End Select
    
        Set MyRange = Selection
    
        For Each MyCell In MyRange
    
            If Not IsEmpty(MyCell) Then
                MyCell = Trim(MyCell)
            End If
    
        Next MyCell
End Sub

#### 8. Выделение дубликатов цветом

Иногда в нескольких столбцах, которые мы хотели бы осветить, есть повторяющиеся значения. Этот макрос делает именно это:

Sub HighlightDuplicates()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Set MyRange = Selection 
    
        For Each MyCell In MyRange 
    
            If WorksheetFunction.CountIf(MyRange, MyCell.Value) > 1 Then
                MyCell.Interior.ColorIndex = 36
            End If
    
        Next MyCell
End Sub

#### 9. Выделение десяти самых высоких чисел

Этот код будет отображать десять самых высоких чисел из набора ячеек:

Sub TopTen()
    Selection.FormatConditions.AddTop10
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1)
            .TopBottom = xlTop10Top
            
            .Rank = 10
            .Percent = False
        End With
        With Selection.FormatConditions(1).Font
            .Color = -16752384
            .TintAndShade = 0
        End With
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13561798
            .TintAndShade = 0
        End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

Вы можете легко настроить код, чтобы выделить различное количество чисел.

#### 10. Выделение данных больших чем данные число

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

Sub HighlightGreaterThanValues()
    Dim i As Integer
    i = InputBox("Enter Greater Than Value", "Enter Value")
    Selection.FormatConditions.Delete
    
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:=i
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1)
            .Font.Color = RGB(0, 0, 0)
            .Interior.Color = RGB(31, 218, 154)
        End With
End Sub

Вы тоже можете настроить этот код, чтобы выделить более низкие чисел.

#### 11. Выделение ячеек комментариями
Простой макрос, который выделяет все ячейки, содержащие комментарии:

Sub HighlightCommentCells()
    Selection.SpecialCells(xlCellTypeComments).Select
    Selection.Style= "Note"
End Sub

#### 12. Выделение ячеек со словами с ошибками

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

 Sub ColorMispelledCells()
    For Each cl In ActiveSheet.UsedRange
        If Not Application.CheckSpelling(Word:=cl.Text) Then _
        cl.Interior.ColorIndex = 28
    Next cl
End Sub

13. Создание сводной таблицы

Вот как создать сводную таблицу в MS Excel (версия 2007). Особенно полезно, когда вы делаете индивидуальный отчет каждый день. Вы можете оптимизировать создание сводной таблицы следующим образом:

Sub PivotTableForExcel2007()
    Dim SourceRange As Range
    Set SourceRange = Sheets("Sheet1").Range("A3:N86")
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SourceRange, _
    Version:=xlPivotTableVersion12).CreatePivotTable _
    TableDestination:="", _
    TableName:="", _
    DefaultVersion:=xlPivotTableVersion12
End Sub

14. Отправка активного файла по электронной почте

Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).

Sub SendFIleAsAttachment()
    
    
        Dim OLApp As Outlook.Application
        Dim OLMail As Object
    
        Set OLApp = New Outlook.Application
        Set OLMail = OLApp.CreateItem(0)
        OLApp.Session.Logon  
    
        With OLMail
        .To = "admin@datapigtechnologies.com; mike@datapigtechnologies.com"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = "Hi there"
        .Attachments.Add ActiveWorkbook.FullName
        .Display  
        End With
    
        Set OLMail = Nothing
        Set OLApp = Nothing
End Sub

15. Вставка всех графиков Excel в презентацию PowerPoint

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

Sub SendExcelFiguresToPowerPoint()
    
    
        Dim PP As PowerPoint.Application
        Dim PPPres As PowerPoint.Presentation
        Dim PPSlide As PowerPoint.Slide
        Dim i As Integer
    
        Sheets("Slide Data").Select
            If ActiveSheet.ChartObjects.Count < 1 Then
                MsgBox "No charts existing the active sheet"
                Exit Sub
            End If
    
        Set PP = New PowerPoint.Application
        Set PPPres = PP.Presentations.Add
        PP.Visible = True
    
            For i = 1 To ActiveSheet.ChartObjects.Count
            
                ActiveSheet.ChartObjects(i).Chart.CopyPicture _
                Size:=xlScreen, Format:=xlPicture
                Application.Wait (Now + TimeValue("0:00:1"))
            
                ppSlideCount = PPPres.Slides.Count
                Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
                PPSlide.Select
            
                PPSlide.Shapes.Paste.Select
                PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
                PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
            Next i
    
        Set PPSlide = Nothing
        Set PPPres = Nothing
        Set PP = Nothing
End Sub

16. Вставка таблицы Excel в MS Word

Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:

 Sub ExcelTableInWord()
    
    
        Dim MyRange As Excel.Range
        Dim wd As Word.Application
        Dim wdDoc As Word.Document
        Dim WdRange As Word.Range
    
       Sheets("Revenue Table").Range("B4:F10").Cop
    
        Set wd = New Word.Application
        Set wdDoc = wd.Documents.Open _
        (ThisWorkbook.Path & "" & "PasteTable.docx")
        wd.Visible = True
    
        Set WdRange = wdDoc.Bookmarks("DataTableHere").Rangе
    
        On Error Resume Next
        WdRange.Tables(1).Delete
        WdRange.Paste 
    
        WdRange.Tables(1).Columns.SetWidth _
        (MyRange.Width / MyRange.Columns.Count), wdAdjustSameWidth
    
        wdDoc.Bookmarks.Add "DataTableHere", WdRange
    
        Set wd = Nothing
        Set wdDoc = Nothing
        Set WdRange = Nothing
End Sub

17. Извлечение слов из текста

Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():

Function FindWord(Source As String, Position As Integer) As String
     On Error Resume Next
     FindWord = Split(WorksheetFunction.Trim(Source), " ")(Position - 1)
     On Error GoTo 0
End Function

Function FindWordRev(Source As String, Position As Integer) As String
     Dim Arr() As String
     Arr = VBA.Split(WorksheetFunction.Trim(Source), " ")
     On Error Resume Next
     FindWordRev = Arr(UBound(Arr) - Position + 1)
     On Error GoTo 0
End Function

Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.

18. Защита данных в MS Excel

Иногда мы хотим защитить данных нашего файла, чтобы только мы могли его изменять. Вот как это сделать с VBA:

Sub ProtectSheets()
    
        Dim ws As Worksheet
    
        For Each ws In ActiveWorkbook.Worksheets
    
        ws.Protect Password:="1234"
        Next ws
End Sub

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

© 2018 Атанас Йонков


Литература:
1. ExcelChamps.com: Top 100 Useful Excel Macro [VBA] Codes Examples.
2. Michael Alexander, John Walkenbach (2012). 101 Ready-To-Use Excel Macros.
3. BG Excel.info: 14 ready-to-use Macros for Excel.

Понравилась статья? Поделить с друзьями:
  • Скачать готовую таблицу excel простые
  • Скачать готовую таблицу excel для бюджета
  • Скачать готовую рамку для курсовой работы в word
  • Скачать готовую работу в microsoft word
  • Скачать готовую практическую работу по таблице excel