Что такое модуль? Какие бывают модули? Суммирование по модулю в Excel Что значит abs в excel.

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

Причины применения функции

В математике модуль числа показывает его абсолютное значение , знак величины не учитывается. С помощью формулы определение записывается так: I-aI = IaI = a. Все значения по модулю являются положительными.

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

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

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

Использование ABS

Поставить модуль числа в Excel можно функцией ABS, аббревиатура образовалась от английского слова Absolute , что означает «абсолютный ».

Стандартный вариант

Правильное написание выглядит так: «ABS(X) » или «ABS(адрес_ячейки_с_числом) ». Здесь «X» - число, модуль которого нужно найти, «адрес ячейки с числом » - элемент таблицы, в котором будет указано абсолютное значение. Вставить формулу можно двумя способами. Простой вариант:


Второй вариант:


ABS в формулах

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

Примеры расчетов

Ниже приведены возможные случаи использования функции модуля ABS, как отдельно, так и в составе формулы.

Задача по математике на определение проекции отрезка на ось абсцисс (X) и ось ординат(Y). По условиям задания отрезок имеет координаты начала A(-17; -14) и конца B(-39;-56). Решение в Excel:

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

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

Другие варианты получения абсолютного значения

Кроме ABS возможны и другие способы получения модуля числа в Эксель при помощи альтернативных функций.

ЗНАК

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

На картинке действие производится над ячейкой A4 .

КОРЕНЬ

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

ЕСЛИ

Удобный способ. Если значение отрицательное, то оно умножается на -1, в противном случае ничего не происходит. Вот как это выглядит для ячейки A1:

Язык VBA

Во многих языках программирования модуль находится через ABS. В VBA команда будет выглядеть следующим образом: A=Abs(-7) . Здесь Abs - команда для получения абсолютного значения. В данном случае объекту A будет присвоено число 7.

ABS и альтернативные варианты просты в исполнении. Умение применять их, облегчит работу и сэкономит время.

​ данное действие выполняется​ на кнопку справа​ Как видим, программа​ диапазон.​: есть, только она​ ошибки #ЗНАЧ!.​ формулу массива (CTRL+SHIFT+Enter):​ ось Ox, который​ABS(число)​Но, можно создать формулу,​=СУММ(СУММЕСЛИ(A2:A8,{">0","​Ctrl+Shift+Enter​ функция​

См. также

​=SUM(SUMIF(A2:A8,{">0","​

​.​СУММ​

​ просуммировать диапазон​

Примеры функции ABS в Excel для пересчета значения по модулю

​ должны немного поработать,​ модулю.​ "Экселе" достаточно задать​ функции. Единственное условие​Снова запускается окно с​

Примеры использования функции ABS в Excel

​ положительное значение числа​: записываешь формулу:​ называется))​ как формула массива​При переборе элементов диапазона​ (-7;-4) и конечной​

​ ниже.​

​ бы складывала значения​Если мы возьмем первый​Формула с​



​(SUM). Но есть​B2:B8​ чтобы получить правильный​Чтобы закрепить понимание описания​ в строке формул​ состоит в том,​ аргументами функции. Как​ 8.​

​=МАКС (ABS(A1:A7))​Павел чучков​ для работы с​ B3:B12 каждое значение​

​ (19;44) точек.​

Расчет разницы между наименьшим отрицательным и положительным числом

​Число​ по модулю -​ вариант формулы, получим​СУММПРОЗВ​

​ и существенные отличия,​

​и это даст​ ответ.​ модуля в Excel​

​ "=ABS", после чего​ что данную функцию​ видим, поле «Число»​Существует ещё один способ​где А1 и​

​: модуль это абсолютное​



Сумма по модулю в Excel для отрицательных чисел

​ большими диапазонами данных.​ проверяется на принадлежность​Исходные данные:​ - обязательный аргумент. Вещественное​ без создания дополнительного​ следующее:​:​ например,​

​ нам результат​

​Вот наши данные:​ и принципов его​

​ в скобках указать​

  1. ​ нужно просто знать.​ заполнено значением. Жмем​ расчета модуля. Он​ А7 - границы​ значение. ищи в​
  2. ​Примечания 2:​ к диапазону отрицательных​Для определения длины проекции​ число, абсолютное значение​ столбца. Эта формула​
  3. ​= 60-(-120) = 180​=СУММПРОИЗВ(ABS(A2:A8))​ПРОМЕЖУТОЧНЫЕ.ИТОГИ​180​

​Мы видим, что сумма​



​ работы, стоит рассмотреть​ аргумент, которым может​

Особенности использования функции ABS в Excel

​ на кнопку «OK».​ подойдет для тех​

​ диапазона,​

​ справке​Модуль числа позволяет определить​ чисел.​ на ось Ox​ которого необходимо найти.​ =СУММПРОИЗВ(ABS(A1:A10)).​Для полноты картины, подсчитаем​

​=SUMPRODUCT(ABS(A2:A8))​

  1. ​(SUBTOTAL) полностью игнорирует​.​ чисел в диапазоне​ пару простых примеров,​ являться число, ссылка​Работая в "Экселе", можно​
  2. ​Вслед за этим, в​ пользователей, которые не​затем становишься на​Евгений трофимов​ какую-либо физическую величину,​Функция СУММ возвращает сумму​ используем следующую формулу:​Скопируйте таблицу ниже и​Другой вариант суммирования предполагает​
  3. ​ сумму с помощью​Учитывая, что можно использовать​ числа, которые были​=СУММ(B2:B8)​
  1. ​ демонстрирующих работу функции.​ на ячейку, а​ выполнить множество различных​ ранее указанной вами​ привыкли держать в​ ячейку с формулой​: ABS​ которая математически может​ абсолютных величин (благодаря​
  2. ​B4 и B2 –​ вставьте ее в​ использование формулы массива​ второго варианта:​ более эффективную функцию​ скрыты вручную или​=SUM(B2:B8)​дает результат​
  3. ​Для вычисления модуля некоторого​ также некоторую функцию,​ задач, в том​ ячейке выводится значение​
  • ​ голове различные формулы.​ и нажимаешь F2,​Extesy​ быть задана отрицательным​ использованию функции ABS),​ начальная и конечная​ ячейку A1 в​ =СУММ(ABS(A1:A10)). После ввода​= СУММ({60,-120}*{1,-1}) = СУММ({60,120})​СУММЕСЛИ​
  • ​ с помощью фильтрации.​В моем примере диапазон​-60​ заданного числа или​ возвращающую числовое значение.​

В Excel есть функция "модуль"?

​ числе математических. Широкий​ ​ модуля того числа,​

​ Кликаем по ячейке,​ ​ а затем Alt+Enter​: Найти сложение абсолютных​ числом, но в​

​ взятых из диапазона​ ​ координаты соответственно. Разность​ Excel. Возможно, для​ формулы, нужно вместо​

​ = 180​ ​(SUMIF), чтобы получить​

​ Есть еще несколько​ ​A1:A8​:​ математического примера, например​ Также эту операцию​ набор инструментов программы​ которое вы выбрали.​ в которой хотим,​--​ значений в любом​ реальном мире –​ отобранных отрицательных чисел.​ этих координат является​ работы формул понадобится​ENTER​Думаю, что теперь вы​ тот же результат​ отличий, но это​

​– это полноценная​ ​= -10 + 10​ разности 2 и​
​ можно выполнить, нажав​

В Excel есть функция "максимум модулей"?

​ позволяет производить требуемые​ ​Если значение расположено в​ чтобы хранился результат.​
​и будет тебе​ диапазоне (например, А12:А15)​ представлена только абсолютным​
​Если отрицательных чисел (расходных​ искомой длиной проекции.​ выбрать все ячейки​

​нажать​ ​ знаете все основные​ (см. вариант 3),​ мало относится к​ таблица данных. Поэтому​ + 20 +​

​ 5, следует воспользоваться​ ​ кнопку "Вставить функцию",​
​ действия, не требующие​
​ таблице, то формулу​ Жмем на кнопку​ счастье:)​
​ легко, просто создаем​ (неотрицательным) значением, например,​ операций) нет, будет​ Аналогично найдем величину​
​ с ними и​
​CTRL+SHIFT+ENTER​ способы подсчета суммы​

​ путь с использованием​


Модуль – это абсолютная положительная величина любого числа. Даже у отрицательного числа модуль будет всегда положительным. Давайте выясним, как рассчитать величину модуля в Microsoft Excel.

Функция ABS

Для расчета величины модуля в Excel существует специальная функция под названием «ABS» . Синтаксис этой функции очень простой: ABS(число) . Либо формула может принимать такой вид: ABS(адрес_ячейки_с_числом) . Чтобы рассчитать, например, модуль от числа -8 , нужно вбить в строку формул или в любую ячейку на листе следующую формулу: «=ABS(-8)» .

Для выполнения расчета жмем на Enter — программа выдает в ответ положительное значение.

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


Важно заметить, что некоторые пользователи пытаются записать модуль, как это принято в математике, то есть |(число)| , например |-48| . Но в такой ситуации вместо ответа появится лишь ошибка, так как Excel не понимает подобный синтаксис.

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

В Excel. Сегодня разберем формулу записи «модуль в Excel». Модуль числа применяется для определения абсолютной величины числа, например длины отрезка. Ниже мы приводим несколько способов расчета модуля числа в Эксель, основная функция — ABS, а дополнительный расчет при помощи функций ЕСЛИ и КОРЕНЬ.

Как следует из определения, модуль числа — это неотрицательное число, значение самого числа. Т.е. если у нас есть отрицательное число -7, то по модулю оно будет равняться 7. Записывается модуль как две вертикальные линии:

|-7| = 7

Для чего применяется? Если у нас есть значение вектора равное -7, где минус обозначает его обратное направление, то чтобы найти длину самого вектора, нам необходимо высчитать модуль числа (т.к. длина не может быть отрицательной величиной).

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

В большинстве языков программирования модуль числа находится функцией ABS (от абсолютное значение, Abs olute). Наш любимый Excel не исключение.

В ячейке введем формулу:

Как следует из описания функции, значение такой формулы будет равно 7.

Как посчитать модуль через ЕСЛИ, альтернативный способ

По сути, действие функции «Модуль» это определение отрицательное ли число или нет и передача его значения. То есть легко справиться основная функция условия =ЕСЛИ().

ЕСЛИ(A1<0;A1*-1;A1)

Я лично про ABS всегда забываю и пишу через ЕСЛИ.

Модуль числа и КОРЕНЬ

Как мне подсказали, есть особенно хитрый способ найти модуль числа через функцию КОРЕНЬ. Возводим число во вторую степень и находим из выражения корень.

КОРЕНЬ(A1*A1)

Сам бы не додумался.

Пример файла с 3мя расчетами прикладываю .

Модуль числа в VBA

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

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

A=Abs(-7)

Здесь А будет равно 7.

В целом вот так, если что-то нужно пояснить пишите в комментарии и не стесняйтесь.

Поделитесь нашей статьей в ваших соцсетях:
Макросы(VBA процедуры) (63)
Разное (39)
Баги и глюки Excel (4)

Что такое модуль? Какие бывают модули?

Любой код VBA должен где-то храниться. Для хранения кодов в VBA используются модули, которые хранятся в книге. Книга может содержать сколько угодно модулей. Каждый модуль в свою очередь может содержать множество процедур(макросов).
Все имеющиеся в книге модули можно посмотреть через редактор VBA (Alt +F11 ). Имеющиеся модули отображены в левой части редактора в проводнeике объектов(Project Explorer).
рис.1
Сам проводник объектов может быть не отображен по умолчанию и тогда его необходимо отобразить: нажать Ctrl +R либо в меню редактора VBA-View -Project Explorer

Модули делятся на пять основных типов:

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

Для того, чтобы создать новый стандартный модуль(Module) , модуль класса(ClassModule) или пользовательскую форму(UserForm) надо просто в окне Проводника объектов(Project Explorer) щелкнуть правой кнопкой мыши, выбрать пункт Insert и затем тип добавляемого объекта(Module , ClassModule , UserForm ). Так же добавить модуль можно и через меню: Insert -тип модуля.
Удалить тоже просто: щелкнуть правой кнопкой мыши на нужном модуле в окне проекта и выбрать Remove . Подробнее про удаление в конце статьи этой статьи:

СТАНДАРТНЫЙ МОДУЛЬ
на рис.1 Module1 .
Самый распространенный тип модулей, который используется в большинстве случаев. Именно в них макрорекордер создает записываемые макросы . Все коды и процедуры в таких модулях пишутся вручную, либо копируются из других источников(другого модуля, с этого сайта и т.п.). В основном именно в стандартных модулях содержится большая часть кодов. Они предназначены для хранения основных процедур и Public переменных, которые могут быть доступны впоследствии из любого модуля. Как создать стандартный модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert -Module . При записи макрорекордером модули создаются автоматически и им автоматически присваиваются имена.
Многие коды, опубликованные в статьях на сайте необходимо размещать именно в стандартных модулях. Для этого достаточно создать новый стандартный модуль, скопировать текст кода с сайта и вставить.

МОДУЛЬ ЛИСТА
Лист1 или Sheet1 - на рис.1: Лист1 (Лист1),Лист2 (Лист2),Лист3 (Лист3) .
Для каждого листа книги имеется свой отдельный модуль. Попасть в модуль листа проще, чем в остальные модули. Для этого надо просто щелкнуть правой кнопкой мыши по ярлычку листа и выбрать из контекстного меню пункт Исходный текст(View Code)
в зависимости от версии Excel этот пункт на русском может называться так же: Просмотреть код или Исходный код :

Можно и более трудным путем пойти - через редактор VBA: Alt +F11 и в окне Проводника объектов(Project Explorer) дважды щелкнуть по объекту с именем листа или правая кнопка мыши на модуле листа -View code .
Размещая код в модуле листа следует помнить, что при копировании или переносе данного листа в другую книгу код так же будет скопирован, т.к. является частью листа. Это и плюс и минус одновременно. Плюс в том, что разместив код в модуле листа можно использовать этот лист в качестве шаблона для распространения со своими кнопками вызова этих кодов(в том числе создания книг кодом) и весь функционал будет доступен. Минус же заключается в некоторых нюансах обращения к ячейкам(подробнее можно ознакомиться в этой статье: Как обратиться к диапазону из VBA) и необходимости размещения ВСЕХ используемых процедур в этом листе, иначе при переносе в другие книги коды могут работать с ошибками.

В модуле листа содержатся встроенные событийные процедуры, каждая из которых отвечает за обработку определенного события на этом листе. Посмотреть их можно так: выбираете объект(на рисунке ниже список в левой части) Worksheet, а в правом списке выбираете событие(в этом списке все процедуры, доступные для выбранного листа) :


Процедуры, события для которых уже используются, выделяются жирным шрифтом.

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

  • Activate - возникает при активации самого листа(но не возникает, если произошел переход из одной книги в другую и этот лист является там активным)
  • BeforeDoubleClick - возникает при двойном клике мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target - ссылка на ячейку, в которой было произведено действие; Cancel - отвечает за отмену режима редактирования
  • BeforeRightClick - возникает при клике правой кнопкой мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target - ссылка на ячейку, в которой было произведено действие; Cancel - отвечает за отмену показа всплывающего меню
  • Calculate - возникает при пересчете функций и формул на листе
  • Change - возникает при изменении значений ячеек на листе. Важно обращать внимание на передаваемый аргумент Target. Target - ссылка на ячейку, которая была изменена. Может отличаться от активной в момент обработки ячейки
  • Deactivate - возникает при переходе с этого листа на другой лист этой же книги
  • FollowHyperlink - возникает при переходе по гиперссылке , созданной в этом листе
  • SelectionChange - возникает при изменении адреса выделенной ячейки/области. Важно обращать внимание на передаваемый аргумент Target. Target - ссылка на диапазон ячеек, которые были выделены. Совпадает с выделенными на текущий момент ячейками

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

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Адрес измененной ячейки: " & Target.Address & _ "; Адрес активной ячейки: " & Selection.Address, vbInformation, "www.сайт" End Sub

Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "Адрес измененной ячейки: " & Target.Address & _ "; Адрес активной ячейки: " & Selection.Address, vbInformation, "www.сайт" End Sub

После этого запишите в ячейку A1 значение 5 и нажмите Enter. Событие Change сработает в момент завершения редактирования - т.е. в момент нажатия Enter. При этом будет произведен переход на ячейку A2(в большинстве случаев, если настройками не задано иное) и появится сообщение, которое покажет, что изменили ячейку A1, а выделена сейчас A2. Т.е. Target - это всегда ссылка именно на измененную ячейку независимо от того, что сейчас выделено. Данное событие(Worksheet_Change) не будет срабатывать при изменении значений ячеек с формулами. Только ручной ввод.

Примечание : для всех кодов, приведенных на сайте, достаточно просто открыть необходимый модуль(книги или листа) и вставить предложенный код. Корректировка может понадобиться только в случаях, когда в модуле Листа или Книги вашего файла уже имеется код в необходимой событийной процедуре.

МОДУЛЬ КНИГИ
ЭтаКнига или ThisWorkbook - на рис.1: ЭтаКнига .
В модуль книги можно попасть только через проводник объектов(Project Explorer) редактора VBA - двойной щелчок по ЭтаКнига (ThisWorkbook) или правая кнопка мыши на модуле -View code . В модуле книги так же содержатся "встроенные" событийные процедуры. Так же как и для листа выбираем в списке объектов(вверху слева) Workbook . В правом окне выбора процедур, так же как и с модулем листа, будут все процедуры, доступные для объекта ЭтаКнига . Пример использования событийных процедур книги можно посмотреть в статье Как отследить событие(например выделение ячеек) в любой книге?
Но там применяются все те же правила - главное не забывать про аргументы, доступные из этих процедур и передаваемые им самим Excel. Например, для события Workbook_BeforeClose доступен аргумент Cancel. Это можно использовать, если не хотите, чтобы книгу закрыл пользователь, не заполнив ячейку A1. Вот пример подобного кода:

Private Sub Workbook_BeforeClose(Cancel As Boolean) If Me.Sheets("Отчет").Range("A1").Value = "" Then MsgBox "Необходимо заполнить ячейку A1 на листе "Отчет"", vbCritical, "www.сайт" Cancel = True "отменяем закрытие книги End If End Sub

Из кода видно, что на листе "Отчет" должна быть не пустой ячейка A1(лист "Отчет" тоже должен существовать в этой книге). Но есть и еще одна вещь - какое-то Me . Это краткое обращение к объекту модуля класса, в данном случае это равнозначно обращению ThisWorkbook. И еще один пример кода для модуля ЭтаКнига, который запрещает сохранять исходную книгу, разрешая сохранить её только через пункт Сохранить как(SaveAs) :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI = False Then "используется простое сохранить MsgBox "Эта книга является шаблоном. Сохранять её можно только через Сохранить как", vbCritical, "www.сайт" Cancel = True "отменяем сохранение книги End If End Sub

Такое может потребоваться, если книга является шаблоном с полями для заполнения и необходимо предотвратить случайное сохранение исходного документа. Хотя это можно так же сделать без макросов - книгу можно сохранить с правами только на чтение.

МОДУЛИ ФОРМ
UserForm - на рис.1 UserForm1 .
Содержатся внутри Пользовательской формы(UserForm) и её объектов. В Пользовательских формах в основном все завязано именно на событийных процедурах самой формы и на элементах этой формы(Кнопки, ТекстБоксы, КомбоБоксы(выпадающие списки) и т.д.). Очень удобно использовать Пользовательские формы в своих приложениях для общения с пользователем. Т.к. через формы очень удобно отслеживать действия пользователя и можно запретить доступ к листам с данными, путем их скрытия. Создается форма так же как и модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert -UserForm . Примеры кодов с использованием форм можно посмотреть в статьях: Каждому пользователю свой лист/диапазон , Как оставить в ячейке только цифры или только текст?

МОДУЛЬ КЛАССА
ClassModule - на рис.1 Class1 .
В большинстве случаев создается специально для отслеживания событий различных объектов. Вряд ли понадобиться начинающим изучение VBA, хотя все зависит от поставленной задачи. Но обычно начинающим изучать это кажется слишком сложным. В любом случае, перед работой с модулями классов лучше научиться хоть чуть-чуть работать с обычными модулями и самостоятельно писать процедуры. Как добавить такой модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert -Class Module . Подробнее про модули классов и работу с ними можно почитать в этой статье: Работа с модулями классов . Там описаны все основные принципы и приложен файл примера.

УДАЛЕНИЕ МОДУЛЯ
Действия по удалению любого из модулей одинаковы для всех типов. Для этого необходимо перейти в проект VBA нужной книги, выбрать нужный модуль, щелкнуть по нему правой кнопкой мыши и в появившемся меню выбрать Remove (Имя модуля)... (Remove Module1, Remove UserForm1, Remove Class1 и т.п.). После этого появится окно с запросом "Do you want to export (имя модуля) before removing it?". Это означает, что VBA спрашивает: хотите ли Вы сохранить копию кодов модуля перед удалением? Как правило выбирать следует Нет . Но если Вы хотите сохранить текст кодов из удаляемого модуля в отдельном файле, то соглашаетесь, нажав Да. Будет предложено выбрать папку для сохранения модуля и можно даже задать ему отдельное имя.

ПЕРЕНОС, ИМПОРТ и ЭКСПОРТ МОДУЛЯ
Иногда нужно модуль из одной книги переместить в другую. Сделать это можно несколькими способами. Самый простой - открыть обе книги, перейти в проводник проектов -найти нужный модуль -захватить его левой кнопкой мыши и не отпуская кнопку перетащить на проект другой книги:


Следует помнить, что так можно перенести и скопировать только стандартный модуль, модуль класса и модуль UserForm . Коды модулей листов и книги придется переносить как обычный текст: переходим в модуль ЭтаКнига (откуда хотим копировать) -копируем весь код -переходим в модуль ЭтаКнига второй книги и вставляем скопированное:


Экспорт модуля(сохранение в отдельный файл)
Если же надо сохранить стандартный модуль, модуль класса или модуль формы и не переносить сразу же в другую книгу, то можно экспортировать модуль. Для чего это может быть нужно? Как правило, чтобы перенести коды из дома на работу, переслать кому-то на другой ПК(пересылка файла с макросами может быть запрещена политикой безопасности компании) и т.п. Делается это просто: щелкаем на модуле правой кнопки мыши -Export file .
У экспортируемых модулей есть разные расширения, в зависимости от типа модуля. Для стандартных модулей это .bas (Module1.bas), для модулей класса - .cls (Class1.cls). А вот для модулей форм будет создано целых два файла: UserForm1.frm и UserForm1.frx . Их важно хранить вместе - один без другого не может быть импортирован в дальнейшем в файл. В файле.frx хранится информация об визуальном отображении формы и её элементах, если можно так сказать. В файле.frm хранятся непосредственно тексты кодов для формы и служебная информация(имя и размеры формы, некоторые глобальные директивы и ссылка на файл.frx). Поэтому не рекомендуется без соответствующих навыков переименовывать эти два файла в надежде, что потом все заработает.
Импорт модуля(перенос экспортированного ранее в новую книгу)
Для переноса экспортированного модуля в другую книгу надо просто в проводнике объектов выделить нужный проект правой кнопкой мыши -Import module -выбрать в диалоговом окне нужный модуль.
Экспортировать можно любой модуль, а вот импортировать - нет. Модули листов и книг хоть и экспортируются в отдельные файлы(кстати, с расширением.cls), но импортировать их не получится в том виде, как это предполагается. Они будут импортированы как новые модули класса и только. Поэтому для переноса кодов из модулей листов и книг придется использовать все равно копирование и вставку непосредственно кодов.
И в довершение - можно переносить модули автоматически, кодами VBA: Как добавить код процедуры программно, скопировать модуль

Статья помогла? Поделись ссылкой с друзьями! Видеоуроки

{"Bottom bar":{"textstyle":"static","textpositionstatic":"bottom","textautohide":true,"textpositionmarginstatic":0,"textpositiondynamic":"bottomleft","textpositionmarginleft":24,"textpositionmarginright":24,"textpositionmargintop":24,"textpositionmarginbottom":24,"texteffect":"slide","texteffecteasing":"easeOutCubic","texteffectduration":600,"texteffectslidedirection":"left","texteffectslidedistance":30,"texteffectdelay":500,"texteffectseparate":false,"texteffect1":"slide","texteffectslidedirection1":"right","texteffectslidedistance1":120,"texteffecteasing1":"easeOutCubic","texteffectduration1":600,"texteffectdelay1":1000,"texteffect2":"slide","texteffectslidedirection2":"right","texteffectslidedistance2":120,"texteffecteasing2":"easeOutCubic","texteffectduration2":600,"texteffectdelay2":1500,"textcss":"display:block; padding:12px; text-align:left;","textbgcss":"display:block; position:absolute; top:0px; left:0px; width:100%; height:100%; background-color:#333333; opacity:0.6; filter:alpha(opacity=60);","titlecss":"display:block; position:relative; font:bold 14px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; color:#fff;","descriptioncss":"display:block; position:relative; font:12px \"Lucida Sans Unicode\",\"Lucida Grande\",sans-serif,Arial; color:#fff; margin-top:8px;","buttoncss":"display:block; position:relative; margin-top:8px;","texteffectresponsive":true,"texteffectresponsivesize":640,"titlecssresponsive":"font-size:12px;","descriptioncssresponsive":"display:none !important;","buttoncssresponsive":"","addgooglefonts":false,"googlefonts":"","textleftrightpercentforstatic":40}}