Как перенести макрос в другую книгу excel

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

Если книга содержит макрос Visual Basic для приложений(VBA),который вы хотите использовать в другом месте, вы можете скопировать модуль, содержащий этот макрос, в другую открытую книгу с помощью редактора Visual Basic(VBE).

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

  • Чтобы Windows, перейдите в меню Параметры > >Настроить ленту.

  • Для Macперейдите на Excel > параметры… >ленты & панели инструментов.

  • Затем в разделе Настройка ленты в разделе Основные вкладкиубедитесь в том, что в разделе Разработчик.

Общие сведения о макросах и VBA

Если вы не знакомы с макросами и VBA в целом, вам могут пригодиться следующие сведения:

  • Макрос — это действие или набор действий, которые можно использовать для автоматизации задач.

  • Макрос можно записать с помощью команды Запись макроса на вкладке Разработчик.

  • Макрос записуется на языке программирования VBA.

  • Вы можете проверить и изменить макрос в редакторе Visual Basic, которое открывается Excel. Вот пример окна VBE для Windows:

    Модуль, содержащий два макроса, которые хранятся в Модуле1 в Книге1

Макрос с именами MakeCellGreen и SetRowHeight находится в модуле Module1,который хранится в книге Book1.

Копирование модуля из одной книги в другую

  1. Откройте книгу, содержаную макрос, который вы хотите скопировать, и книгу, в которую вы хотите его скопировать.

  2. На вкладке Разработчик щелкните Visual Basic, чтобы открыть редактор Visual Basic редактора.

  3. В редакторе Visual Basic меню Вид выберите Project проводник Изображение кнопкиили нажмите CTRL+R .

  4. В области Project проводника перетащите модуль, содержащий макрос, который нужно скопировать в 9-ю книгу. В этом случае мы копируете Module1 из Book2.xlsm в Book1.xlsm.
     

    Окно проекта VBA

  1. Модуль1, скопирован из Book2.xlsm

  2. Копия модуля1, скопированная в Book1.xlsm

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

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

  1. Откройте в Excel файл, содержащий макрос, который надо перенести в другую книгу

  2. Перейдите в редактор Visual Basic for Applications (VBA) через комбинацию клавиш Alt+F11

  3. Слева в окне Project-VBAProject последовательно найдите ваш файл, далее раздел Modules, далее тот модуль, содержимое которого вы собираетесь переносить.

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

  5. Для каждого модуля, предназначенного к переносу, нажимайте на нём правую кнопку мыши (ПКМ) и выбирайте Export File…

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

  7. Проделайте это со всеми нужными вам модулями.

  8. Откройте целевой файл Excel, который должен иметь тип Книга Excel с поддержкой макросов (*.xlsm) или Двоичная книга Excel (*.xlsb). Если тип файла у вас не такой (обычно это Книга Excel (*.xlsx)), то пересохраните файл, через Сохранить как и укажите нужный нам тип.

  9. Точно также найдите этот файл в проектах редактора VBA (смотри выше)

  10. Нажмите на любом листе файла ПКМ и выберите пункт меню Import File…

  11. Выберите ранее сохраненный файл и нажмите Открыть

  12. Модуль будет проимпортирован в вашу книгу

  13. Повторите это для всех модулей

  14. Закройте VBA редактор

  15. Закройте файлы Excel с сохранением результатов

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

1 Открыть книгу,
содержащую копируемый модуль, и книгу,
в которую нужно его копировать – через
меню ФайлОткрытьили кнопкуОткрытьна панели инструментовСтандартная.

2 В меню Сервис
установить курсор на пунктМакроси выбрать ко-

манду
Редактор Visual Basic.

3 В меню Видвыбрать командуОкно проекта.

4.
Перетащить в Окне
проекта
с
помощью мыши копируемый модуль в нужную
книгу.

Примечание.Чтобы получить возможность использовать
макрос в любое время, сохраните его в
личной книге макросов. Он получит имя
следующим форматом: «PERSONAL.XLS.
Имя макроса».

Более
сложные макросы создаются с помощью
редактора Visual
Basic.

Контрольные вопросы

1
Что называется макросом, для чего он
предназначен?

2
Как записать макрос?

3 Способы запуска
макроса (перечислить).

4
Запись
макроса, запускаемого из меню Сервис и
сочетанием клавиш с клавиатуры.

5
Использование относительной и абсолютной
адресации при записи макросов.

6
Создание новой панели инструментов.
Назначение кнопки для запуска макроса
на новой панели инструментов .

7
Добавление кнопки запуска макроса на
существующие панели инструментов
(Стандартная,Форматирование и др.).

8
Добавление кнопки запуска на рабочий
лист с помощью панели инструментов
Формы.

9 Копирование
модуля макроса в другую книгу.

Задание

1 Разработать
макрос для вычисления прогнозируемых
значений функции y= 0,2·xn, гдеn– номер компьютера в аудитории.
Предварительно функцию нужно ввести в
ячейки столбца или строки процессораExcel, задав изменение
аргументах в пределах 1…7 с шагом
1 и вычислив в соседнем столбце (или
строке) по введённой формуле значения
функции у (см. л.р.excel– 3). Прогноз выполнить с помощью функций
ТЕНДЕНЦИЯ или РОСТ (см. л.р.excel– 4).

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

2 Разработать
макрос для построения графика функции
y = 2·sin(n·x), гдеn– номер компьютера
в аудитории, для 10 значений аргумента
х = 1…10. При записи макроса использовать
относительную адресацию. Макрос должен
запускаться сочетанием клавиш с
клавиатуры и командой из менюСервис.

3 Открыть новую книгу и скопировать в неё оба макроса. Создать новую панель инструментов. Назначить макросам новые кнопки для их запуска с новой панели инструментов.

Содержание
отчёта

1
Название,
цель, содержание работы

2
Задание своего варианта

3
Письменные ответы на контрольные вопросы

4
Выводы по работе

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

Лабораторная работа №7

Поиск
решения в Excel

Цель
работы:
научиться
использовать процессор Excel

для
решения задач оптимизации

Содержание
работы:

1
Создание формы

2
Ввод данных в окно Поиск
решения

3
Задание параметров поиска и решение
задачи

Общие
сведения

Математический
аппарат Excel
позволяет решать задачи линейного,
нелинейного и целочисленного
программирования. При этом оптимизация
решения выполняется методом поиска
решения, который запускается командой
СервисПоиск
решения
.

Задача
линейного программирования (ЗЛП) в общем
случае формулируется следующим образом:

Определить
максимум (минимум) целевой функции F
max(min) при заданной системе ограничений
(2) и граничных условий (3):

Fmax(min)
=A1*X1+A2*X2+…+An*Xn (1)

B11*X1+B12*X2+…+B1n*Xn<=C1

B21*X1+B22*X2+…+B2n*Xn<=C2

……………………….
……………………………. (2)

Bn1*X1+Bn2*X2+…+Bnn*Xn<=Cn

Xi>=0,
i=1…n (3)

Рассмотрим
применение процессора Excel для решения
ЗЛП на примере.

Задача.
МП выпускает товары Х1,Х2,Х3,Х4, получая
от реализации каждого прибыль в
60,70,120,130 руб. соответственно. Затраты на
производство приведены в табл. 1.
Определить:

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

  2. Минимум
    ресурсов, необходимых для получения
    максимальной прибыли.

Таблица
1

Затраты

Х1

Х2

Х3

Х4

Всего

Трудовые

1

1

1

1

16

Сырьевые

6

5

4

1

110

Финансы

4

6

10

13

100

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

60Х1+70Х2+120Х3+130Х4
= Fmax
– целевая функция прибыли.

Х1+Х2+Х3+Х4
<= 16

6Х1+5Х2+4Х3+Х4
<= 110 — ограничения модели

4Х1+6Х2+10Х3+13Х4
<= 100

Хj
>=0
— граничные условия
модели

Решение
задачи средствами Excel состоит из 3 этапов:

1
Создание формы для ввода условий задачи,
ввод в неё исходных данных и зависимостей
из математической модели.

2
Ввод данных из формы в окно Поиск
решения

из меню Сервис.

3
Задание параметров поиска и решение
задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Как экспортировать все макросы из одной книги в другую?

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

Экспорт всех макросов из одной книги в другую с кодом VBA


Экспорт всех макросов из одной книги в другую с кодом VBA

Чтобы экспортировать все коды макросов vba из одного файла Excel в другой, выполните следующие действия:

1. Во-первых, вы должны открыть две книги одновременно, одна содержит макросы, а другая — та, в которую вы хотите экспортировать макросы, см. Снимок экрана:

макросы экспорта документов 1

Вкладка Office: открытие, чтение, редактирование и управление несколькими документами Office в одном окне с вкладками.

Вкладка Office позволяет просматривать, редактировать и управлять приложениями Microsoft Office с вкладками. Вы можете открывать несколько документов / файлов в одном окне с вкладками, например, используя браузер IE 8/9/10, Firefox или Google Chrome. Нажмите, чтобы загрузить и бесплатную пробную версию сейчас!

макросы экспорта документов

2. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модуль, и вставьте следующий макрос в Модули Окно.

Код VBA: экспорт всех макросов из одной книги в другую:

Sub ExportAndImportModule()
Dim xStrSWSName, xSreDWSName As String
Dim xSWS, xDWS As Workbook
xStrSWSName = "old-workbook"
xSreDWSName = "new-workbook"
Dim xFilePath As String
Dim xObjFD As FileDialog
Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)
 With xObjFD
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count > 0 Then
            xFilePath = .SelectedItems.Item(1)
        Else
            Exit Sub
        End If
End With
On Error GoTo Err1
Set xSWS = Workbooks(xStrSWSName & ".xlsm")
Set xDWS = Workbooks(xSreDWSName & ".xlsm")
Set xvbap = xSWS.VBProject
Set xVBC = xvbap.VBComponents
For Each Module In xSWS.VBProject.VBComponents
If Module.Type = vbext_ct_StdModule Then
Module.Export (xFilePath & "" & Module.Name & ".bas")
xDWS.VBProject.VBComponents.Import (xFilePath & "" & Module.Name & ".bas")
End If
Next Module
Exit Sub
Err1:
    MsgBox "come to nothing!"
End Sub

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

макросы экспорта документов 2

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

макросы экспорта документов 3

5. Затем нажмите OK Кнопка, и все макросы были экспортированы из указанной книги в другой файл Excel, а файлы макросов также были сохранены в определенной папке. Смотрите скриншот:

макросы экспорта документов 4

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


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (3)


Оценок пока нет. Оцените первым!

Нет. Есть файл, который создаёт новую книгу с макросами и кнопками. Считайте это книгой-инструментом, которая создаёт книгу с макросами и кнопками. Какой она будет — выбирает пользователь, поэтому заранее подготовить нельзя.  

  Я додумался, что менять пути макроса можно. НО! Макрос запускается из старой книги, которая в процессе работы закрывается. Почему-то в новой изменения не происходят — где я ошибаюсь, не подскажите? Вот сокращенный код:  

  Application.ScreenUpdating = False  
ActiveWorkbook.VBProject.VBComponents(«Module1»).Export («c:Module1.bas»)  
   Sheets(Array(«Scorecard», «Reserved», «CopyData»)).Select  
   Sheets(Array(«Scorecard», «Reserved», «CopyData»)).Copy  
Workbooks(«TM Scorecard Builder — копия.xlsm»).Close (False)  
Application.VBE.ActiveVBProject.VBComponents.Import («c:Module1.bas»)  
Kill («c:Module1.bas»)  
   ActiveSheet.Shapes.Range(Array(«Bevel 11»)).Select  
   Selection.OnAction = «Лист1.SCAs»  
Application.ScreenUpdating = True  

  Что я думал делаться должно?  

  1) Блокируется экран  
2) Экспорт модуля  
3) Выбор и копирование листов  
4) Закрытие старой книги без сохранения  
5) Импорт модуля  
6) Удаление экспортированного модуля  
7) Выбор и замена назначенного макроса  
8) Разблокировка экрана  

  Как это работает на самом деле  

  1) Блокируется экран  
2) Экспорт модуля  
3) Выбор и копирование листов  
4) Закрытие старой книги без сохранения  
5) Импорт модуля  
6) Удаление экспортированного модуля  
7) Разблокировка экрана  

  То бишь, как я вижу, переназначение просто не происходит. Почему??? Моё подозрение в том, что сначала надо выбрать вновь созданную книгу — но как?  

  предварительное удаление файла из пути ничего не даёт  
он вовзращается автоматически при копировании листов

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