VBA Close UserForm

Kiedy tworzymy formularz użytkownika, pobiera dane jako dane wejściowe od użytkowników, ale dane są dostarczane do formularza nie zamykają się, więc może wprowadzić użytkownika w błąd, aby ponownie wprowadzić dane, używamy dwóch różnych poleceń, aby zamknąć formularz użytkownika, gdy dane wejściowe mają zostały podane i są to metoda Unload me do zamykania formularza użytkownika lub możemy użyć metody userform.hide.

Excel VBA Zamknij formularz użytkownika

Formularze użytkownika są niezbędne podczas uzyskiwania danych wejściowych od użytkownika w ramach projektu VBA. Zwykle projektujemy formularz użytkownika, zanim przedstawimy go użytkownikowi. Po zakończeniu projektowania formularza użytkownika VBA musimy pokazać to samo przed użytkownikiem i wymagać kodowania VBA. Podobnie, aby zamknąć formularz użytkownika, wymagana jest znajomość kodowania VBA.

W tym artykule pokażemy, jak zamknąć formularz użytkownika w kodowaniu VBA.

Jak zamknąć UserForm w Excel VBA?

Po wypełnieniu celu formularza użytkownika pojawia się konieczność ciągłego wyświetlania formularza użytkownika przed użytkownikiem, więc musimy zamknąć formularz użytkownika. Możemy zamknąć formularz użytkownika za pomocą instrukcji „Unload Me” i „UserForm.Hide”. Mimo że oba nieco się od siebie różnią, ostatecznie posłużą naszemu celowi.

Możesz pobrać ten szablon VBA Close UserForm Excel tutaj - VBA Zamknij szablon UserForm Excel

# 1 - Zamknij formularz użytkownika za pomocą instrukcji „Unload Me” w VBA

Na przykład spójrz na poniższy obraz formularza użytkownika.

Nazwałem formularz użytkownika jako „MyUserForm”.

Jeśli uruchomię formularz użytkownika, zobaczymy formularz użytkownika jak poniżej.

Muszę podać wymagane dane, po wypełnieniu informacji, jeśli kliknę przycisk Prześlij, przechwycą te same dane do arkusza roboczego, który jest widoczny po lewej stronie.

Po kliknięciu przycisku przesyłania przechwycił dane, które wprowadziłem w formularzu użytkownika.

Jeśli zauważysz, mamy jeszcze jeden przycisk o nazwie „Anuluj”. Co to robi?

Zanim wyświetlimy formularz użytkownika, musimy skonfigurować ten przycisk. Teraz wrócę do podstawowego edytora wizualnego, aby skonfigurować ten przycisk.

Teraz dwukrotnie kliknę przycisk Anuluj, co spowoduje otwarcie automatycznej podprocedury VBA, jak poniżej.

W tej procedurze musimy napisać kod VBA o tym, co powinno się stać, jeśli klikniemy przycisk Anuluj. Kliknięcie tego przycisku anulowania powinno zamknąć formularz użytkownika, nad którym obecnie pracujemy.

Więc napisz kod jako „Unload Me”.

Kod:

 Private Sub CancelButton_Click () Unload Me End Sub 

„Wyładuj mnie” to słowo, którego używamy do zamknięcia formularza użytkownika, nad którym pracujemy. Tutaj formularz użytkownika rozpoznaje słowo „Ja” jako sam formularz użytkownika.

„Unload Me” może być używane tylko w tej procedurze formularza użytkownika, nie możemy wywołać tej instrukcji w innych modułach. Jeśli zostanie wywołany, wyświetli komunikat o błędzie jako „ Nieprawidłowe użycie słowa kluczowego ”.

Ok, uruchommy kod klawiszem F5 lub ręcznie, zobaczymy pusty formularz użytkownika.

Wypełnij dane i kliknij Prześlij.

Po kliknięciu przycisku przesyłania zapisze wartości we wspomnianych komórkach.

Jeśli wprowadzanie danych jest zakończone, musimy zamknąć formularz użytkownika, prawda?

Więc kliknij przycisk Anuluj, aby zamknąć formularz użytkownika, spowoduje to zamknięcie formularza użytkownika.

# 2 - Zamknij formularz użytkownika za pomocą metody ukrywania w Excel VBA

Możemy również zamknąć Userform metodą „Hide” również w VBA. Teraz jeszcze raz dwukrotnie kliknę przycisk anulowania, aby zobaczyć prywatną podprocedurę.

Ponieważ napisaliśmy już kod zamykający formularz użytkownika, możemy zobaczyć istniejący kod w VBA. Teraz to usunę.

Aby użyć metody Hide, musimy wywołać formularz użytkownika za pomocą jego nazwy. W tym przypadku nazwa naszego formularza użytkownika to „MyUserForm”.

Po podaniu nazwy formularza użytkownika, jeśli wstawimy kropkę (.), Możemy zobaczyć wszystkie właściwości i metody tego formularza użytkownika. Teraz wybiorę metodę „Ukryj”.

Ok, uruchommy formularz użytkownika jeszcze raz. Zobaczymy pusty formularz użytkownika, najpierw wypełnij dane.

Teraz bez kliknięcia przycisku Prześlij, kliknę przycisk Anuluj, ukryje to formularz użytkownika.

Różnica między wyładowaniem i ukrywaniem w Excel VBA

Musisz mieć pytanie, jaka jest różnica między Unload & Hide, gdzie oba służą podobnemu celowi. Jest różnica między tymi dwoma. Teraz najpierw użyję instrukcji Unload Me. Spójrz na poniższy obrazek.

Podałem dane w formularzu użytkownika, ale jeszcze ich nie przesłałem. Kliknięcie przycisku Anuluj spowoduje wyładowanie formularza użytkownika.

Teraz ponownie uruchomię kod za pomocą klawisza skrótu programu Excel F5 lub ręcznie, wyświetli pusty formularz użytkownika.

Mimo że przez pomyłkę wpisałem dane poprawnie, kliknąłem przycisk anulowania, to gdy ponownie pojawi się formularz nowego użytkownika, wypełniłem dane od nowa.

Teraz użyję metody „Hide”.

Nie, kliknę przycisk anulowania, ukryje to widoczny formularz użytkownika. Ale kiedy ponownie uruchomię makro, wróci ono z danymi, które już wprowadziłem w formularzu użytkownika.

W ten sposób możemy użyć instrukcji „Unload” i metody „Hide”, aby zamknąć formularze użytkownika w Excel VBA.