Ten samouczek pokaże, jak uzyskać dane wejściowe od użytkownika za pomocą pola wprowadzania VBA.
ten Pole wprowadzania VBA pozwala nam skłonić użytkownika do wprowadzenia informacji. Informacje można następnie wykorzystać w naszym kodzie VBA lub w arkuszu programu Excel.
Pole wejściowe VBA ze zmienną
Możemy zadeklarować zmienną w naszym kodzie VBA, która następnie przechowuje informacje wpisane w polu wprowadzania. Możemy następnie użyć tej zmiennej w naszym kodzie.
W zależności od rodzaju informacji, które chcemy zwrócić z pola wejściowego, możemy zadeklarować określony typ zmiennej, aby zwracał tekst (zmienna łańcuchowa lub wariantowa) lub zwracał liczbę (zmienna całkowita, długa, podwójna lub pojedyncza).
Zmienna łańcuchowa z polem wprowadzania
Oto jak utworzyć InputBox, w którym dane są zwracane do zmiennej ciągu.
123 | Dim strInput jako StringstrInput = InputBox("To jest mój InputBox", "MyInputTitle", "Wprowadź tekst wejściowy TUTAJ") |
Zauważ, że najpierw deklarujemy zmienną. Tej zmiennej zostanie przypisana wartość wprowadzona przez użytkownika. Użyliśmy zmiennej typu String, aby pole wprowadzania akceptowało ciągi tekstowe (zawierające dowolne znaki alfanumeryczne).
Zmienna liczbowa z polem wprowadzania
Jeśli deklarujesz zmienną liczbową, będziesz musiał wprowadzić liczbę tylko w polu wprowadzania.
12 | Dim iInput As IntegeriInput = InputBox("Wprowadź numer", "Utwórz numer faktury", 1) |
Najpierw deklarujemy zmienną liczbową jako zmienną całkowitą. Możemy wtedy również umieścić domyślną wartość 1 w polu wprowadzania.
Gdybyśmy mieli wpisać ciąg znaków zamiast liczby, a następnie kliknąć OK, otrzymalibyśmy błąd niedopasowania typu, ponieważ zmienna liczbowa nie akceptuje ciągu.
Uzyskaj dane wejściowe od użytkownika
Oto kolejny przykład wykorzystania najpopularniejszych funkcji InputBox.
Poniższy kod robi trzy rzeczy:
1. Pyta o dane wejściowe za pomocą InputBox i przypisuje je do zmiennej
2. Weryfikuje wejście, w przeciwnym razie wychodzi z sub
3. Zwraca dane wejściowe w oknie wiadomości
12345678910111213 | Public Sub MyInputBox()Dim MyInput As StringMyInput = InputBox("To jest moje InputBox", "MyInputTitle", "Wprowadź tekst wejściowy TUTAJ")If MyInput = "Wprowadź swój tekst TUTAJ" Lub MyInput = "" ThenWyjście SubZakończ, jeśliMsgBox "Tekst z MyInputBox to " & MyInputNapis końcowy |
Zwracanie danych wejściowych do arkusza Excel
Możesz zwrócić dane wejściowe wpisane w polu wprowadzania do określonej komórki w arkuszu programu Excel.
1 | Range("P1") = InputBox("Wpisz swoje imię", "Wpisz imię", "Wpisz TUTAJ") |
Możemy również zwrócić dane wejściowe do arkusza Excel za pomocą zmiennej.
12345678910 | Wpisz numer podrzędny()Przy błędzie Wznów DalejDim dblIlość jako podwójnadblAmount = InputBox("Wprowadź wymaganą kwotę", "Wprowadź kwotę")Jeśli dblAmount 0 WtedyZakres("A1") = dblAmountW przeciwnym razieMsgBox "Nie wpisałeś numeru!"Zakończ, jeśliNapis końcowy |
W powyższym przykładzie musimy wpisać liczbę. Jeśli wprowadzimy liczbę, to zmienna kwota dbl wstawi numer do arkusza Excela w komórce A1. Jeśli jednak nie wprowadzimy liczby, to okno komunikatu powie nam, że nie wpisaliśmy liczby i nic nie zostanie wpisane do komórki A1.
Korzystanie z VBA InputBox w programie Access VBA
Pole wprowadzania VBA działa dokładnie tak samo w programie Access, jak w programie Excel podczas zwracania danych wejściowych użytkownika w postaci okna komunikatu.
Jeśli jednak chcesz zwrócić dane wprowadzone przez użytkownika do bazy danych, musisz użyć obiektu Recordset zamiast obiektu Range, jak w programie Excel.
1234567891011121314 | Sub wprowadź numer faktury ()Dim dbs jako baza danychPrzyciemnij najpierw jako zestaw rekordówUstaw dbs = Bieżąca baza danychUstaw rst = dbs.OpenRecordset("tblMatters", dbOpenDynaset)Z pierwszym.Dodaj nowe!InvNo = InputBox("Wprowadź numer faktury", "GENEROWANIE NUMERU FAKTURY", 1).AktualizacjaKończyć zpierwsze.ZamknijUstaw pierwsze = NicUstaw dbs = NicNapis końcowy |