Nazwa typu VBA

W tym artykule zademonstrujemy użycie funkcji VBA TypeName.

VBA Wpisz imię Funkcja służy do określenia typu danych przechowywanych w komórce lub typu wybranego obiektu - na przykład arkusza, zakresu lub komórki lub kontrolki na formularzu.

Określanie typu danych w komórce

Aby określić typ danych w komórce, możemy użyć funkcji TypeName z właściwością Cells.

123 SubTestCellDataType()MsgBox "Typ danych w " & Cells(3, 2)).Adres & " is " & TypeName(Cells(3, 2)).Value)Napis końcowy

Jeśli uruchomimy powyższy kod z arkuszem poniżej, okno komunikatu poinformuje nas, jaki typ danych znajduje się w komórce.

Określanie typu wybranego obiektu

Możemy również użyć TypeName, aby określić, jaki typ obiektu został wybrany w arkuszu - na przykład zakres lub wykres.

123 Wybór podtestu()MsgBox "Wybrałeś " & TypeName(Selection)Napis końcowy

Lub, jeśli wybierzemy wykres:

Możemy zagłębić się jeszcze bardziej i wybrać obiekty na wykresie, a makro zwróci to, co wybraliśmy.

Wszystko to może być najbardziej przydatne w budowaniu naszego projektu VBA, aby albo kontrolować przepływ kodu, albo zapobiegać występowaniu błędów poprzez testowanie, aby upewnić się, że wybrano właściwy typ obiektu lub prawidłowy typ danych jest wprowadzany do komórki .

Używanie TypeName na kontrolkach formularza

VBA umożliwia nam tworzenie interaktywnych formularzy, które użytkownik może wypełniać i zwracać dane do kodu do wykorzystania na różne sposoby. Możemy użyć operatora TypeName do określenia typu kontrolek, które są używane w formularzu.

W poniższym przykładzie utworzyłem formularz użytkownika z różnymi kontrolkami - kilkoma polami tekstowymi, polem kombi, 2 przyciskami opcji, 2 polami wyboru i 3 przyciskami poleceń.

Korzystając z poniższego kodu, mogę określić, jaki typ kontrolek znajduje się w formularzu, przeglądając wszystkie kontrolki w formularzu. Użyłem funkcji TypeName do zwrócenia komunikatu z typem kontrolki za pomocą instrukcji VBA IF, aby sprawdzić, jaki typ kontrolki jest wybrany.

123456 Sub WhatControlType()Dim ctl jako obiektDla każdego ctl In Me.ControlsMsgBox "Kontrolka to " & TypeName(ctl)Następny ctlNapis końcowy

Ten rodzaj kodu może być bardzo przydatny, jeśli chcemy włączyć lub wyłączyć kontrolki. W poniższym kodzie, gdy formularz jest otwierany po raz pierwszy, przyciski opcji i pola wyboru są wyłączone.

123456789101112 Prywatna Sub UserForm_Initialize()Dim ctl jako obiektDla każdego ctl In Me.ControlsJeśli TypeName(ctl) = "Pole wyboru" Wtedyctl.Enabled = FałszElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = FałszW przeciwnym raziectl.Enabled = PrawdaZakończ, jeśliNastępny ctlNapis końcowy

Aby włączyć przyciski opcji i pola wyboru, napisałem dodatkowy kod za przyciskiem Włącz sterowanie.

12345678910 Prywatna sub cmdEnable_Click()Dim ctl jako obiektDla każdego ctl In Me.ControlsJeśli TypeName(ctl) = "Pole wyboru" Wtedyctl.Enabled = Nie ctl.EnabledElseIf TypeName(ctl) = "OptionButton" Thenctl.Enabled = Nie ctl.EnabledZakończ, jeśliNastępny ctlNapis końcowy

Funkcjonalność w tym kodzie można również utworzyć za pomocą operatora VBA TypeOf.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave