Wprowadzenie do Excel VBA Call Sub
W VBA mamy funkcję CALL, która służy do wywoływania wartości przechowywanych w innej podkategorii lub procedurze Sub. Załóżmy, że napisaliśmy kod gdzieś w skoroszycie, teraz pisząc inny kod, potrzebujemy tego samego kodu napisanego wcześniej. Zamiast więc ponownie pisać ten sam kod, możemy wywołać ten kompletny kod lub procedurę Sub w bieżącej procedurze podkategorii lub Sub. Dzięki temu można uniknąć powtarzania tej samej czynności skoroszytu.
Jak wywołać Sub w Excel VBA?
Poniżej znajdują się różne przykłady wywoływania Sub w Excel VBA:
Możesz pobrać szablon VBA Call Sub Excel tutaj - szablon VBA Call Sub ExcelExcel VBA Call Sub - Przykład nr 1
Najpierw zobaczmy jeden przykład, w którym WYWOŁAMY już napisaną podkategorię lub procedurę. Do tego potrzebny jest moduł.
Przejdź do okna VBA i w opcji menu Wstaw kliknij Moduł, jak pokazano poniżej.
Następnie otrzymamy pustą stronę lub okno modułu. Teraz w tym napisz podkategorię kodu, który wykonujemy lub pod dowolną inną nazwą, jak pokazano poniżej.
Kod:
Sub Calling () End Sub
Teraz użyj polecenia w polu wiadomości i wpisz dowolny tekst lub słowo, które chcesz zobaczyć w polu wiadomości. Tutaj używamy „ Pierwszy ”, jak pokazano poniżej.
Kod:
Sub Calling () MsgBox („First”) End Sub
Teraz skompiluj kod i uruchom go, klikając przycisk Odtwórz znajdujący się pod paskiem menu. Zobaczysz okno komunikatu zawierające komunikat „ Pierwszy ”, jak pokazano poniżej.
Teraz po zakończeniu w tym samym module, napisz inną podkategorię lub procedurę o dowolnej nazwie, jak pokazano poniżej.
Kod:
Sub przybywa () End Sub
W tym celu ponownie użyj polecenia MsgBox i podaj mu wiadomość lub tekst zgodnie z twoim wyborem. Tutaj daliśmy mu „ drugi ”, jak pokazano poniżej.
Kod:
Sub Arriving () MsgBox („Second”) End Sub
Teraz, jeśli uruchomimy pełny kod, otrzymamy wynik tylko ostatniej podkategorii, która jest oknem komunikatu zawierającym komunikat „ Drugi ”, jak pokazano poniżej.
Nadchodzi funkcja CALL, której będziemy używać do wywoływania obu wiadomości jeden po drugim. Zostanie to wykorzystane w pierwszej podkategorii.
W przypadku tego typu wywołaj pierwszą podkategorię przed końcem, a następnie nazwę tej podkategorii, której kod chcemy wywołać. Odtąd MsgBox używamy Call, a następnie Arriving, który jest nazwą podkategorii kodu napisanego poniżej.
Kod:
Sub Calling () MsgBox („First”) Wywołanie Przybywa End Sub Sub przybywa () MsgBox („Second”) End Sub
Teraz skompiluj cały kod od początku do końca i uruchom go. Zobaczysz okno komunikatu o nazwie „Pierwszy”. Teraz kliknij OK, aby przejść dalej. Gdy to zrobimy, otrzymamy drugie okno komunikatu zawierające komunikat „ Drugi ”, jak pokazano poniżej. A jeśli ponownie klikniesz OK, to wyjdzie z procedury.
Co jeśli zmienimy pozycję funkcji Call z przed End na po pierwszej podkategorii, jak pokazano poniżej? Teraz uruchommy ponownie cały kod.
Kod:
Sub Calling () Wywołanie Przybycie MsgBox („Pierwsze”) End Sub Sub Przybycie () MsgBox („Second”) End Sub
Najpierw wyświetli się komunikat zapisany w drugim podprocedurze, którym jest „ Drugi ”, a następnie komunikat „ Pierwszy ”, gdy klikniemy OK, jak pokazano poniżej.
Wszystko zależy od nas, do której procedury podrzędnej lub kategorii chcemy zadzwonić w pierwszej kolejności.
Excel VBA Call Sub - Przykład nr 2
Zobaczmy inny przykład, w którym użyjemy funkcji Call do wywołania innej podkategorii. W tym celu potrzebujemy nowego modułu. Otwórz moduł z menu Wstaw. I daje podkategorię pod dowolną nazwą, jak pokazano poniżej.
Kod:
Sub VBACall () End Sub
Zdefiniuj 3 zmienne Num1, Num2 i Ans1 w DIM i przypisz następnie za pomocą Long . Możemy również użyć Integer lub Double, w zależności od zastosowania. Długi pozwoli nam rozważyć dowolną długość numeru.
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans 1 As Long End Sub
Teraz podaj Num1 i Num2 dowolną liczbę do wyboru. Daliśmy im odpowiednio 100 i 50 . Uwzględnienie 100 i 50 pomoże nam szybko zidentyfikować wyniki.
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 End Sub
Teraz użyj formuły mnożenia, aby pomnożyć magazyny liczb w Num1 i Num2 i zapisać ich odpowiedź w zmiennej Ans1, jak pokazano poniżej.
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 End Sub
W następnym wierszu kodu użyjemy obiektu VBA. W tym celu wybierz arkusz za pomocą polecenia Arkusz roboczy i nadaj mu zakres dowolnej komórki. Wybraliśmy komórkę zakresu jako B1. I w końcu wydrukuj wynik o dowolnej nazwie, takiej jak Wynik lub Odpowiedź, jak pokazano poniżej.
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arkusze robocze (1). Range („B1”). Wartość = „Answer” End Sub
Podaj teraz lokalizację, w której chcemy zobaczyć odpowiedź w taki sam sposób, jak pokazano powyżej. Tutaj wybieramy komórkę C1 jako komórkę wyjściową i umieszczamy tutaj ostatnią zmienną Ans1 .
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arkusze robocze (1). Range („B1”). Wartość = „Answer” Arkusze robocze (1). („C1”). Wartość = Ans1 End Sub
Teraz uruchom kod. W komórce C1 zobaczymy wynik mnożenia.
Pisanie kolejnej podkategorii poniżej tego samego kodu po zakończeniu.
Kod:
Sub VBACall2 () End Sub
Ponownie zdefiniuj 3 zmienne Num3, Num4 i Ans2 w DIM i przypisz następnie za pomocą Long.
Kod:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long End Sub
Nadaj Num3 i Num4 te same wartości, jak 100 i 50, i dodaj obie liczby.
Kod:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 End Sub
Teraz użyj VBA Object w podobny sposób jak powyżej i podaj komórkę zakresu jako B2 dla Answer i C2 dla wyjścia Ans2 .
Kod:
Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arkusze robocze (1). Range („B2”). Value = „Answer” Arkusze robocze (1). („C2”). Wartość = Ans2 End Sub
Aby wywołać oba wyniki jeden po drugim, użyj funkcji Call, która nadaje mu nazwę drugiej podkategorii, jak pokazano poniżej.
Kod:
Sub VBACall () Dim Num1 As Long Dim Num2 As Long Dim Ans1 As Long Num1 = 100 Num2 = 50 Ans1 = Num1 * Num2 Arkusze robocze (1). Range („B1”). Wartość = „Answer” Arkusze robocze (1). („C1”). Wartość = wywołanie Ans1 VBACall2 End Sub Sub VBACall2 () Dim Num3 As Long Dim Num4 As Long Dim Ans2 As Long Num3 = 100 Num4 = 50 Ans2 = Num3 + Num4 Arkusze robocze (1). Range („B2” ) .Value = „Answer” Arkusze (1) .Range („C2”). Wartość = Ans2 End Sub
Teraz skompiluj cały kod i uruchom. Będziemy pierwsi w komórce C2, otrzymaliśmy wynik mnożenia, a w komórce C3 wynik dodania.
Aby poznać prawidłową sekwencję, możemy użyć komendy MsgBox, jak w przykładzie 1 i zobaczyć, które wartości wywoływane w jakiej sekwencji.
Plusy Excel VBA Call Sub
- Subwoofer VBA oszczędza czas, pisząc ten sam kod wielokrotnie.
- Wywołanie magazynu podprogramów VBA w tym samym programie Excel również zmniejsza rozmiar pliku programu Excel.
Rzeczy do zapamiętania
- Użyj okna komunikatu do celów testowych, aby zobaczyć sekwencyjny przebieg wielu kodów.
- Skompiluj większe wiersze kodu, naciskając klawisz F8, aby można było zidentyfikować część błędu.
- Zapisz plik w makrze Włącz format Excel, aby zachować zapisany kod.
- Użycie CALL przed końcem uruchomi pierwszy kod jako pierwszy, a po pierwszym Subprocedure uruchomi najpierw drugi kod.
Polecane artykuły
To jest przewodnik po VBA Call Sub. Tutaj omawiamy, jak wywołać Sub w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- VBA Do Until Loop
- SUBTOTAL Formula w Excelu
- VBA While Loop
- Funkcja Excel podciągu