Как скопировать макросы из одной книги в другую
Перенос VBA макроса из одной книги в другую
Иногда возникает необходимость перенести макрос из одной книги Excel в другую. Для тех, кто слабо ориентируется в макросах предназначена эта пошаговая инструкция.
Перенос VBA макроса из одной книги в другую
- Откройте в Excel файл, содержащий макрос, который надо перенести в другую книгу
- Перейдите в редактор Visual Basic for Applications (VBA) через комбинацию клавиш Alt + F11
- Слева в окне Project-VBAProject последовательно найдите ваш файл, далее раздел Modules , далее тот модуль, содержимое которого вы собираетесь переносить.
- Модулей может быть несколько и вы, либо знаете имя необходимого вам модуля, либо переносите их все.
- Для каждого модуля, предназначенного к переносу, нажимайте на нём правую кнопку мыши (ПКМ) и выбирайте Export File.

- Обратите внимание, как называется файл, чтобы потом знать, что искать. Выбирайте удобную вам папку, нажимайте Сохранить .
- Проделайте это со всеми нужными вам модулями.
- Откройте целевой файл Excel, который должен иметь тип Книга Excel с поддержкой макросов (*.xlsm) или Двоичная книга Excel (*.xlsb) . Если тип файла у вас не такой (обычно это Книга Excel (*.xlsx) ), то пересохраните файл, через Сохранить как и укажите нужный нам тип.
- Точно также найдите этот файл в проектах редактора VBA (смотри выше)
- Нажмите на любом листе файла ПКМ и выберите пункт меню Import File.

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

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

- Повторите это для всех модулей
- Закройте VBA редактор
- Закройте файлы Excel с сохранением результатов
Копирование модуля макроса в другую книгу
Если книга содержит макрос Visual Basic для приложений(VBA),который вы хотите использовать в другом месте, вы можете скопировать модуль, содержащий этот макрос, в другую открытую книгу с помощью редактора Visual Basic(VBE).
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.
- Чтобы Windows, перейдите в меню Параметры >>Настроить ленту.
- Для Macперейдите на Excel >параметры. >ленты & панели инструментов.
- Затем в разделе Настройка ленты в разделе Основные вкладкиубедитесь в том, что в разделе Разработчик.
Общие сведения о макросах и VBA
Если вы не знакомы с макросами и VBA в целом, вам могут пригодиться следующие сведения:
- Макрос — это действие или набор действий, которые можно использовать для автоматизации задач.
- Макрос можно записать с помощью команды Запись макроса на вкладке Разработчик.
- Макрос записуется на языке программирования VBA.
- Вы можете проверить и изменить макрос в редакторе Visual Basic, которое открывается Excel. Вот пример окна VBE для Windows:
Макрос с именами MakeCellGreen и SetRowHeight находится в модуле Module1,который хранится в книге Book1.
Копирование модуля из одной книги в другую

- Откройте книгу, содержаную макрос, который вы хотите скопировать, и книгу, в которую вы хотите его скопировать.
- На вкладке Разработчик щелкните Visual Basic, чтобы открыть редактор Visual Basic редактора.
- В редакторе Visual Basic меню Вид выберите Project проводник или нажмите CTRL+R .
- В области Project проводника перетащите модуль, содержащий макрос, который нужно скопировать в 9-ю книгу. В этом случае мы копируете Module1 из Book2.xlsm в Book1.xlsm.
- Модуль1, скопирован из Book2.xlsm
- Копия модуля1, скопированная в Book1.xlsm
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Как скопировать макросы из одной книги в другую
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
покупка
Как экспортировать все макросы из одной книги в другую?
Если вам нужно экспортировать несколько макросов VBA-кодов из одной книги в другую, вы можете скопировать их один за другим обычным образом. Но это займет много времени, в этой статье я расскажу о том, как быстро экспортировать все макросы из одной книги в другую, а также сохранить файлы макросов в определенной папке.
Remove all macros from multiple workbooks:
Kutools for Excel‘s Batch Remove All Macros utility can help you to remove all macros from multiple workbooks as you need. Download and free trial Kutools for Excel now!

Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!
Экспорт всех макросов из одной книги в другую с кодом VBA
Чтобы экспортировать все коды макросов vba из одного файла Excel в другой, выполните следующие действия:
1. Во-первых, вы должны открыть две книги одновременно, одна содержит макросы, а другая — та, в которую вы хотите экспортировать макросы, см. Снимок экрана:

Office Tab-Открывайте, читайте, редактируйте и управляйте несколькими документами Office в одном окне с вкладками.
Office Tab обеспечивает просмотр с вкладками, редактирование и управление приложениями 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 формат файла.

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

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

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