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:
Макрос с именами 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 или попросить помощи в сообществе Answers community.
Нужна дополнительная помощь?
Иногда возникает необходимость перенести макрос из одной книги Excel в другую. Для тех, кто слабо ориентируется в макросах предназначена эта пошаговая инструкция.
-
Откройте в 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 с сохранением результатов
Копирование макроса |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Нет. Есть файл, который создаёт новую книгу с макросами и кнопками. Считайте это книгой-инструментом, которая создаёт книгу с макросами и кнопками. Какой она будет — выбирает пользователь, поэтому заранее подготовить нельзя.
Я додумался, что менять пути макроса можно. НО! Макрос запускается из старой книги, которая в процессе работы закрывается. Почему-то в новой изменения не происходят — где я ошибаюсь, не подскажите? Вот сокращенный код:
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) Выбор и замена назначенного макроса
Разблокировка экрана
Как это работает на самом деле
1) Блокируется экран
2) Экспорт модуля
3) Выбор и копирование листов
4) Закрытие старой книги без сохранения
5) Импорт модуля
6) Удаление экспортированного модуля
7) Разблокировка экрана
То бишь, как я вижу, переназначение просто не происходит. Почему??? Моё подозрение в том, что сначала надо выбрать вновь созданную книгу — но как?
предварительное удаление файла из пути ничего не даёт
он вовзращается автоматически при копировании листов
Как экспортировать все макросы из одной книги в другую?
Если вам нужно экспортировать несколько макросов VBA-кодов из одной книги в другую, вы можете скопировать их один за другим обычным образом. Но это займет много времени, в этой статье я расскажу о том, как быстро экспортировать все макросы из одной книги в другую, а также сохранить файлы макросов в определенной папке.
Экспорт всех макросов из одной книги в другую с кодом VBA
Экспорт всех макросов из одной книги в другую с кодом VBA
Чтобы экспортировать все коды макросов vba из одного файла Excel в другой, выполните следующие действия:
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 формат файла.
4. После вставки вышеуказанного кода нажмите F5 ключ для запуска этого кода и Приложения отображается окно, выберите папку для хранения экспортированных файлов макросов, см. снимок экрана:
5. Затем нажмите OK Кнопка, и все макросы были экспортированы из указанной книги в другой файл Excel, а файлы макросов также были сохранены в определенной папке. Смотрите скриншот:
Внимание: Этот код может экспортировать макросы только из обычного модуля.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (3)
Оценок пока нет. Оцените первым!