VBA InputBox - Uzyskaj dane wejściowe od użytkownika w makrze - Przykłady kodu VBA

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

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

wave wave wave wave wave