Введение в Excel VBA Call Sub

В VBA у нас есть функция CALL, которая используется для вызова значений, хранящихся в другой подкатегории или подпроцедуре. Предположим, что мы написали код где-то в рабочей книге, теперь при написании другого кода нам нужен тот же код, написанный ранее. Таким образом, вместо того, чтобы снова писать тот же код, мы можем вызвать этот полный код или процедуру Sub в текущей подкатегории или процедуре Sub. Благодаря этому можно избежать повторения одного и того же действия в книге.

Как вызвать Sub в Excel VBA?

Ниже приведены различные примеры вызова Sub в Excel VBA:

Вы можете скачать этот шаблон VBA Call Sub Excel здесь - Шаблон VBA Call Sub Excel

Excel VBA Call Sub - Пример # 1

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

Перейдите в окно VBA и в пункте меню «Вставка» нажмите «Модуль», как показано ниже.

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

Код:

 Sub Calling () End Sub 

Теперь используйте команду окна сообщения и введите любой текст или слово, которое вы хотите видеть в окне сообщения. Здесь мы используем « Первый », как показано ниже.

Код:

 Sub Calling () MsgBox ("First") End Sub 

Теперь скомпилируйте код и запустите его, нажав на кнопку Play, которая находится под строкой меню. Мы увидим окно с сообщением « Первый », как показано ниже.

Теперь после End в том же модуле напишите другую подкатегорию или процедуру с любым именем, как показано ниже.

Код:

 Sub Arriving () End Sub 

В этом снова используйте команду MsgBox и дайте ей сообщение или текст по вашему выбору. Здесь мы дали ему « Второе », как показано ниже.

Код:

 Sub Arriving () MsgBox ("Second") End Sub 

Теперь, если мы запустим полный код, мы получим вывод только последней подкатегории, которая является окном сообщения, содержащим сообщение « Second », как показано ниже.

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

Для этого типа Вызовите в первой подкатегории перед End, а затем имя той подкатегории, чей код мы хотим вызвать. В дальнейшем MsgBox мы используем Call, а затем Arriving, который является именем подкатегории кода, написанного ниже.

Код:

 Sub Calling () MsgBox ("Первый") Конец Sub Sub Arriving Call Arriving () MsgBox ("Второй") End Sub 

Теперь скомпилируйте полный код от начала до конца и запустите его. Мы увидим окно с именем «First». Теперь нажмите Ok, чтобы продолжить. Как только мы это сделаем, мы получим второе окно с сообщением « Second », как показано ниже. И если снова нажать Ok, то он выйдет из процедуры.

Что если мы изменим положение функции Call с до End на после первой подкатегории, как показано ниже? Теперь давайте снова запустим полный код.

Код:

 Sub Calling () Вызов Прибытия MsgBox ("Первый") End Sub Прибытие () MsgBox ("Second") End Sub 

Сначала появится сообщение, сохраненное во второй подпроцедуре, которое называется « Второе », а затем сообщение « Первое », когда мы нажмем «ОК», как показано ниже.

Так что все зависит от нас, какую процедуру Sub или категорию мы хотим вызвать в первую очередь.

Excel VBA Call Sub - Пример № 2

Давайте посмотрим другой пример, где мы будем использовать функцию Call для вызова другой подкатегории. Для этого нам нужен новый модуль. Откройте модуль из меню «Вставка». И это дает подкатегорию в любом имени, как показано ниже.

Код:

 Sub VBACall () End Sub 

Определите 3 переменные Num1, Num2 и Ans1 в DIM и назначьте их с помощью Long . Мы также можем использовать Integer или Double, в зависимости от использования. Длинный позволит нам рассмотреть любую длину номера.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long End Sub 

Теперь дайте Num1 и Num2 любое число по вашему выбору. Мы дали им 100 и 50 соответственно. Учет 100 и 50 поможет нам быстро определить результат.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Nim1 = 100 Num2 = 50 End Sub 

Теперь используйте формулу умножения, чтобы умножить хранилища чисел в Num1 и Num2 и сохранить их ответ в переменной Ans1, как показано ниже.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub 

В следующей строке кода мы будем использовать объект VBA. Для этого выберите лист с командой Worksheet и задайте для него диапазон любой ячейки. Мы выбрали ячейку диапазона как B1. И наконец напечатайте результат с любым именем, таким как Результат или Ответ, как показано ниже.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Nim1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Рабочие листы (1) .Range ("B1"). Значение = "Answer" End Sub 

Теперь дайте ему место, где мы хотим видеть ответ таким же образом, как показано выше. Здесь мы выбираем ячейку C1 в качестве выходной и помещаем последнюю переменную Ans1 здесь.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Nim1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Рабочие листы (1) .Range ("B1"). Value = "Ответ" Рабочие листы (1) .Range ("C1"). Значение = Ans1 End Sub 

Теперь запустите код. Мы увидим результат умножения в ячейке C1.

Написание другой подкатегории ниже того же кода после завершения.

Код:

 Sub VBACall2 () End Sub 

Снова определите 3 переменные Num3, Num4 и Ans2 в DIM и назначьте их с помощью Long.

Код:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub 

Задайте Num3 и Num4 одинаковые значения, такие как 100 и 50, и добавьте оба числа.

Код:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub 

Теперь используйте объект VBA аналогично тому, как описано выше, и укажите ячейку диапазона как B2 для ответа и C2 для вывода Ans2 .

Код:

 Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Рабочие листы (1) .Range ("B2"). Value = "Ответ" Рабочие листы (1) .Range ("C2"). Значение = Ans2 End Sub 

Чтобы вызвать оба результата один за другим, используйте функцию Call, которая дает ей название 2- й подкатегории, как показано ниже.

Код:

 Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Nim1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Рабочие листы (1) .Range ("B1"). Value = "Ответ" Рабочие листы (1) .Range («C1»). Значение = Ans1 Вызов VBACall2 End Sub Sub VBACall2 () Тусклый Num3 Длинный тусклый Num4 Длинный тусклый Ans2 Длинный Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Рабочие листы (1) .Range («B2» ) .Value = "Ответ" Рабочие листы (1). Диапазон ("C2"). Значение = Ans2 End Sub 

Теперь скомпилируйте весь код и запустите. Мы будем первыми в ячейке C2, мы получили результат умножения, а в ячейке C3 - результат сложения.

Чтобы узнать правильную последовательность, мы можем использовать команду MsgBox, как в примере 1, и посмотреть, какие значения вызывались в какой последовательности.

Плюсы Excel VBA Call Sub

  • VBA Call Sub экономит время на написание одного и того же кода снова и снова.
  • Вызов хранилища подпроцедур VBA в том же Excel также уменьшает размер файла Excel.

То, что нужно запомнить

  • Используйте окно сообщения для целей тестирования, чтобы увидеть последовательный запуск нескольких кодов.
  • Скомпилируйте большие строки кода, нажав клавишу F8, чтобы можно было определить часть ошибки.
  • Сохраните файл в макросе. Включите формат Excel, чтобы сохранить записанный код.
  • Использование CALL перед End запускает первый код первым, а после первой подпроцедуры сначала запускается второй код.

Рекомендуемые статьи

Это руководство по VBA Call Sub. Здесь мы обсудим, как вызвать Sub в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. VBA Do Loop
  2. Подводная формула в Excel
  3. VBA Пока Loop
  4. Функция подстроки Excel

Категория: