Переход от одного макроса к другому excel

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#1

30.10.2017 11:54:10

Доброго времени суток, Планетяне!
От проверки системных ограничений Excel’я решил вернуться к более рабочим вопросам. Прошу совета по проблеме. Итак:
1. Есть у меня базовый исполнительный макрос. Вообще он хранится в личной подключаемой надстройке, но в примере он помещён в книгу, вместе с предварительным макросом
2. Есть предварительный макрос. С его помощью я получаю 2 переменные (диапазон и разделитель) для последующей передачи их в исполнительный макрос
3.

вопрос:

как это грамотно сделать? Напрямую вызывать исполнительный макрос из предварительного не получается. Ни call, ни run…
4. Изменится ли (и как) порядок передачи переменных, если предварительный макрос находится в модуле книги, а исполнительный в личной надстройке и между ними настроена ссылочная связь, как мне подсказал уважаемый Казанский в

этой

теме?

Зачем мне это?
Опять же — для удобства. Исполнительный макрос не меняется, выполняя одну и ту же работу. Меняются только переменные в нём: например в этом — это разделитель и диапазон. Иногда мне удобно их задать руками (для Selection, как в примере), а иногда онм задаются в составе другого большого макроса, одним из этапов которого будет являться этот.

Проверяю на макросе, взятом из

этой

моей темы.

Вот эти 2 макроса в 1 модуле

Прикрепленные файлы

  • Разбить вниз по разделителю.xlsm (27.34 КБ)

Изменено: Jack Famous30.10.2017 11:57:20

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#2

30.10.2017 13:02:05

Не сочтите за ап)))
Внутри одного модуля разобрался, «засунув» меняющиеся переменные (переменные переменные  :D ) между Option Explicit и Sub’ом первого модуля — то есть, объявив их переменными уровня модуля. Совет взял

отсюда


Теперь, как я понимаю, нужно экспериментировать со случаем из личной надстройки. Буду рад советам и продолжаю

копать

)

Код
Option Explicit
Dim rngTOR As Range
Dim DelimTOR$

Sub TextOnRowsInRange_BASE2()
Dim cl As Range, rngTmp As Range
Dim strTmp$
Dim Arr() As String
Dim i&, n&, j&, k&, a&, max&

    If DelimTOR = "" Then Exit Sub
    
    If rngTOR.Columns.Count > 20 Or rngTOR.Rows.Count > 10000 Or rngTOR.Cells.Count > 100000 Then
        MsgBox "Слишком много выделено!", vbExclamation, "Ошибка выделения"
        Exit Sub
    End If

Application.ScreenUpdating = 0
    For i = rngTOR.Rows.Count To 1 Step -1
'===
        max = 0
        For j = 1 To rngTOR.Columns.Count
                strTmp = rngTOR(i, j).Value & DelimTOR
                   Arr = Split(strTmp, DelimTOR)
                   a = UBound(Arr)
            max = IIf(max > a, max, a)
        Next
        If max <= 1 Then GoTo nx
'===
        rngTOR(i, 1).Offset(1, 0).Resize(max - 1).EntireRow.Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove
   For j = 1 To rngTOR.Columns.Count
            With rngTOR(i, j)
            If InStr(rngTOR(i, j), DelimTOR) Then
                strTmp = .Value '& DelimTOR
                Arr = Split(strTmp, DelimTOR)
                a = UBound(Arr)
                    Set rngTmp = .Resize(a)
                    For k = 0 To a
                        rngTmp(k + 1, 1).Value = Arr(k)
                    Next k
            End If
            End With
        Next j
'===
nx:
    Next i
Application.ScreenUpdating = 1
End Sub
'=======================================================================================================================
Sub TextOnRowsInRange_Choose2()

DelimTOR = InputBox("Введите символ-разделитель")
    If DelimTOR = "10" Then DelimTOR = Chr(10) 'ввести "10" для использования в качестве разделителя "перенос строки"
Set rngTOR = Selection
Application.Run "TextOnRowsInRange_BASE2"
End Sub

Изменено: Jack Famous30.10.2017 13:06:28

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Кароч  :D (инфу, как и ранее, взял

у Дмитрия Щербакова на сайте

)

Вроде работает так:

переменные нужно объявить в области объявлений (перед Sub) как Public, а не Dim в исполнительном макросе, что лежит в личной надстройке. Затем связать книгу и надстройку (ссылка в шапке) и вуаля))) не знаю, насколько стабильно, но с этим примером получилось. Подскажите, если тупанул где или подводные камни какие имеются, на что нужно обратить внимание и что учесть…

Вот ещё

ссылка

на официальные данные по этому вопросу от мелкомягких  :)

Изменено: Jack Famous30.10.2017 13:19:55

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Доброго времени суток, Планетяне!
Увидел, что из макроса в макрос переменные можно передавать в скобках, как в функции: Application.Run «Макрос(a,b,c,rng)».
Подскажите пожалуйста как правильно это сделать и какие нюансы? Можно ли Optional, например, использовать и так далее…

Базовый макрос находится в личной надстройке. Вызываю его из модулей книг.

Изменено: Jack Famous15.03.2018 18:36:19

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Alemox

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

В общем, то вопрос в чём? Как передать переменную из одного макроса в другой?
Решений несколько:
-Можно через глобальную переменную
Public DelimTOR as String
-Можно просто передать как вы выше указывали
Call TextOnRowsInRange_BASE2(DelimTOR)

Sub TextOnRowsInRange_BASE2(DelimTOR)
——————
End Sub
-Ну или так с указанием точного модуля
Макросы.TextOnRowsInRange_BASE2 (DelimTOR)
Я обычно использую точное указание модуля, на случай если имена макросов могут повторяться.
-Если Вы хотите запустить макрос вне надстройки, то-бишь перенести переменную в макрос, который находится в Вашей надстройке, то можно так:
Application.Run «Надстройка.xlam!Макросы.TextOnRowsInRange_BASE2», DelimTOR

Sub TextOnRowsInRange_BASE2(DelimTOR)
——————
End Sub
Имена передаваемых аргументов могут быть другими, передаётся только их порядок, последовательность.

Изменено: Alemox15.03.2018 19:27:47

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#6

15.03.2018 19:47:16

Jack Famous,  очивидно, но, как говорил мой препод по математике, уметь доказывать:
Макрос, или подпрограмм (Sub от Subroutine) отличается от функции только тем, что поcледняя возвращает значение плюс к тем что ей передали. Все остальные правила передачи аргументов остаются/

Надеюсь никого сильно не удивить, но угадайте, что выдадут три принта?

Код
Sub tt2()
B = 1
Call tt(B)
Debug.Print B
Debug.Print ttt(B)
Debug.Print BEnd SubSub tt(a)
a = a + 1
End Sub
sub tt(a)
a=a+1
end sub
Function ttt(a)
a = a + 1
ttt = a
End Function 

То есть надо помнить, а иногда и пользоваться тем, что изменяя передавая параметр (аргумент) и изменив его,  мы получаем измененное значение переменой и в родительском процессе.

Изменено: БМВ15.03.2018 21:00:38

По вопросам из тем форума, личку не читаю.

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Alemox, простите — не увидел вашего сообщения… Подробно, однако  :D
Application.Run «Надстройка.xlam!Макросы.TextOnRowsInRange_BASE2», DelimTOR — вот этот способ был нужен!
Спасибо вам большое!

БМВ, спасибо вам большое! В коде что-то перепутано, но основное уяснил — буду пробовать!

Изменено: Jack Famous15.03.2018 20:57:00

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#8

15.03.2018 21:01:37

Цитата
Jack Famous написал:
В коде что-то перепутано

да, удалил подпрограмку одну случайно. Исправил.

По вопросам из тем форума, личку не читаю.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#9

16.03.2018 00:25:14

Цитата
БМВ написал: изменяя передавая параметр (аргумент) и изменив его,  мы получаем измененное значение переменой и в родительском процессе.

…или получаем ошибку вычислений :)
Не стоит забывать о ByRef и ByVal

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#10

16.03.2018 01:15:13

vikttur, согласен и понятно уж  лучше ошибка, чем непонятно почему измененное значение,

По вопросам из тем форума, личку не читаю.

I will show you how to run a macro from another macro in Excel.  This means that you can run any macro when you need to from a completely separate macro.

This is actually very simple!

Use Call in VBA.

Here is the macro we want to call or run using another macro:

Sub Macro_2()

MsgBox "Hi!"

End Sub

And here is the macro that will call or run this macro:

Sub Macro_1()

'call the second macro

Call Macro_2

End Sub

It is as simple as that.  Put Call in front of the name of the macro that you want to run.

Here is a screenshot of these two macros in Excel:

Download the spreadsheet for this tutorial, from below or the side-bar of this page, and you can test out these macros.


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Use Macros with UserForms

Tutorial: This tutorial explains how macros interact with UserForms.
This includes an explanation of…

Run a Macro when a User Does Something in the Worksheet in Excel

Tutorial: How to run a macro when a user does something in the worksheet, everything from selecting …

Stop a Macro from Running in Excel

Tutorial:

How to stop a macro from running after it has started.

This method uses the keyboard an…

Run a Macro When a Specific Cell Changes in Excel

Tutorial:
Run a macro in Excel when a specific cell is changed; this also covers when a cell within…

Login to a Website using a Macro

: Connect and login to a website using a macro in Excel.
This allows you to open a website a…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Цитата
Сообщение от alpochino
Посмотреть сообщение

Homo Sapiens, Call aa() вызывает выполнение макроса внешней программы

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

смотрите:

Код

Оператор1
	Оператор2
             твоя ерунда
	конец оператора2
конец оператора1

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

Добавлено через 11 минут
Офис, как и любой ЯП, ненавидит недотолков,
например где вы это срисовали ? сами придумали… сомневаюсь..
Application.Run («…»)

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

Справка

  • Установка и настройка
  • Команды
  • Функции (формулы)
  • Продвинутый курс MS Excel
  • Сводные таблицы MS Excel
  • Диаграммы MS Excel

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

Файлы для скачивания:

Файл Описание Размер файла: Скачивания
Пример 14 Кб 2614

Рассмотрим два примера:

1. Ищем и используем команду

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

Выделяем данный код (без нумерации строк, начиная со слова Sub) и нажимаем Ctrl+C. Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11, у вас откроется окно редактора VBA:

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

В левом окне «Project — VBA Project» выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, «VBAProject (Книга2)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_5.png

В пункте меню «Insert» выбираем «Module»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_2.png

В левом окне «Project — VBA Project» у вас должна появиться новая папка «Modules» и в ней новый объект «Module1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_3.png

Переходим курсором в правое «Большое» поле для ввода и нажимаем Ctrl+V, скопированный макрос вставиться в модуль:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_4.png

После чего закрываем редактор VBA и возвращаемся в рабочую книгу.

Если вы работаете в MS Excel 2007, 2010 или 2013, вам необходимо будет сохранить вашу рабочую книгу как «Книга Excel с поддержкой макросов (.xlsm)»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_16.png

В MS Excel 2003 достаточно будет просто сохранить файл.

Чтобы выполнить скопированный в книгу макрос выделяем ячейки, в которые необходимо вставить «1», нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_8.png

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_9.png

Макрос выполнится — в выделенные ячейки вставиться «1»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_20.png

Макросы в MS Excel можно вставлять в следующие места:

  • В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
  • В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
  • В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
  • Так же макросы могут быть частью пользовательской формы.

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

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_10.png

Для вставки кода в Книгу, выберите «ЭтаКнига»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_17.png

Давайте потренируемся. Вставьте код опубликованный ниже в «Лист1».

Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа «2».

Вернитесь в рабочую книгу, перейдите в «Лист1» и введите в ячейку «А1» цифру «2» и нажмите Enter, после чего у вас должно появиться следующее сообщение:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_11.png

Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_21.png

2. Ищем и используем функцию

Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

Копируем код, нажимаем сочетание клавиш Alt+F11, откроется редактор VBA:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_22.png

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

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_23.png

Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст «мама мыла раму». Встаем в ячейку, в которой хотим получить результат (количество слов), в меню «Формулы» нажимаем кнопку «Вставить функцию»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_12.png

В открывшемся окне «Вставка функции» в поле «Категория» выбираем «Определенные пользователем»

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_13.png

В списке доступных функций выбираем «КолСловВЯчейке», нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_14.png

Вводим необходимые аргументы и нажимаем «ОК»:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_15.png

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_24.png

Важно:

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

Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки » . «

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_6.png

Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как «Текст в кодировке Unicode». Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку «A1» и нажмите сочетания клавиш Ctrl+Alt+V. Должно будет появиться меню «Специальной вставки», выберите пункт «Текст в кодировке Unicode» и нажмите «OK».

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_7.png

Код должен будет вставиться в рабочий лист без знаков вопроса:

kak-vstavit-gotovyj-makros-v-rabochuyu-knigu_18.png

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

Если вы не видите в редакторе VBA окна «Project — VBA Project», перейдите во вкладку меню «View» и в списке выберите пункт «Project Explorer» или нажмите сочетание клавиш Ctrl+R:

Содержание

  1. Копирование модуля макроса в другую книгу
  2. Общие сведения о макросах и VBA
  3. Копирование модуля из одной книги в другую
  4. Дополнительные сведения
  5. Как перенести макросы excel на другой компьютер
  6. Как перенести макросы excel на другой компьютер
  7. Общие сведения о макросах и VBA
  8. Копирование модуля из одной книги в другую
  9. Дополнительные сведения
  10. КАК ПЕРЕМЕСТИТЬ МАКРОСЫ EXCEL НА ДРУГОЙ КОМПЬЮТЕР — ВОКРУГ-ДОМ — 2022
  11. Видео: Excel. Макросы. Как перенести готовый макрос в свой файл (Июнь 2022).
  12. Копирование рабочей книги
  13. Шаг 1
  14. Шаг 2
  15. Шаг 3
  16. Использование редактора VBA
  17. Шаг 1
  18. Шаг 2
  19. Шаг 3
  20. Шаг 4
  21. Шаг 5
  22. Шаг 6
  23. Как переместить панель задач на другой монитор
  24. Как переместить один приемник блюд на другой телевизор
  25. Как переместить почту Outlook с одного компьютера на другой
  26. Vba excel перенос макросов
  27. Перенос VBA макроса из одной книги в другую
  28. Vba excel перенос макросов
  29. Как экспортировать все макросы из одной книги в другую?
  30. Как импортировать модуль с макросом на свой компьютер?

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

Если книга содержит макрос 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 для приложений(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 НА ДРУГОЙ КОМПЬЮТЕР — ВОКРУГ-ДОМ — 2022

Видео: Excel. Макросы. Как перенести готовый макрос в свой файл (Июнь 2022).

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

Копирование рабочей книги

Шаг 1

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

Шаг 2

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

Шаг 3

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

Использование редактора VBA

Шаг 1

Скопируйте сами макросы из редактора Visual Basic.

Шаг 2

Перейдите в Инструменты — Макрос — Редактор Visual Basic.

Шаг 3

Перейдите в папку «Модули» в окне «Проект» в левом углу экрана.

Шаг 4

Откройте Модуль 1 и скопируйте код для макросов, которые вы хотите скопировать. Вставьте это в блокнот и скопируйте на выбранный носитель.

Шаг 5

Повторите Шаг 2 на другом компьютере и перейдите в Инструменты-Макросы.

Шаг 6

Назовите свой макрос и вставьте код из блокнота в окно макроса. Нажмите «Создать» и закройте редактор Visual Basic.

Как переместить панель задач на другой монитор

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

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

Dish Network предоставляет спутниковые услуги для дома и бизнеса по всей стране. Блюдо Сеть предоставляет клиентам альтернативу кабельным компаниям для телевидения .

Как переместить почту Outlook с одного компьютера на другой

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

Источник

Vba excel перенос макросов

Иногда возникает необходимость перенести макрос из одной книги 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 с сохранением результатов

Источник

Vba excel перенос макросов

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

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

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 из одного файла Excel в другой, выполните следующие действия:

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

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

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

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

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

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

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

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

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

Источник

Как импортировать модуль с макросом на свой компьютер?

Если Вы еще не знаете что представляет из себя редактор Visual Basic и как он выглядит, рекомендую ознакомиться со статьями «Что такое VBE? Как запустить редактор VB, что такое макрорекордер», а также «Копирование, вставка и последующее сохранение кода макроса в модуль редактора VB на своем ПК». Если же Вы уже знакомы с редактором, идем дальше!

Если Вы не знаете как перенести макрос с одного компьютера на другой, либо скачали из интернета файл с расширением .bas, то знайте – это экспортированный из редактора VB файл модуля, в котором содержится программный код макроса. Этот файл можно импортировать в свой редактор, сохранив тем самым макрос на свой компьютер.

Как Вам уже известно, редактор VB представляет из себя многопанельную среду. В окне редактора VBA, как правило, отображается область разработки, панель свойств объектов и панель проектов, которая нам и понадобится для осуществления импорта файла.

Итак, для импорта файла, содержащего код макроса и имеющего расширение .bas последовательно осуществляем несколько шагов:

1. Находим и переносим на жесткий диск своего компьютера файл с расширением .bas;

2. Открываем на своем компьютере редактор Visual Basic (Alt+F11), выбираем существующий проект;

3. Кликаем на нем правой кнопкой мыши и выбираем пункт «Import File»;

4. Находим место расположения файла с расширением .bas, выбираем его и жмем кнопку «Открыть», после чего модуль с программным кодом макроса появляется в вашем редакторе VB.

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

Если Вам необходимо перенести макрос со своего компьютера на какой-то другой, действуем аналогичным образом, только используем уже пункт контекстного меню «Export File…». Для удаления модуля используется команда «Remove». Если вдруг после импорта модуля макрос не запускается, то внимательно читаем статью «Что делать если макрос не работает?».

Источник

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