Operatory w Excelu VBA

Spisie treści:

Anonim

Znaki i słowa kluczowe, których używamy do obsługi zmiennych w VBA, nazywane są operatorami VBA. Na przykład w wierszach poniżej wiersze =, +, >, & są operatorami.

sub Examp() a= 12 b= 10 c= a+b debug.print "Suma a i b to" & c end sub 

Istnieje pięć typów operatorów w dowolnym języku programowania, więc w VBA
1. Operator przydziału
2. Operator arytmetyczny
3. Operator porównania
4. Operator logiczny
5. Operator konkatenacji

Przyjrzyjmy się każdemu typowi Operatora w Excel VBA.

1. Operator przydziału (=)

Jest to pierwszy operator, którego będziesz używać w dowolnym języku programowania. W VBA służy do przypisywania wartości do zmiennych. Jest to „=” (równe).

Używamy tego operatora do przypisywania wartości do zmiennych w Excel VBA. Jest również używany jako operator porównania w VBA. Porozmawiamy o tym w dalszej części tego samouczka.

Jednym prostym przykładem jest

sub test() a=10 Zakres("A1").value=koniec sub 

W powyższym przykładzie najpierw używamy operatora przypisania "=", aby przypisać wartość zmiennej "a", a następnie używamy operatora "=", aby przypisać wartość "a" do wartości Range("A1").

2. Operatory arytmetyczne

Operatory arytmetyczne to te same operatory, których używamy od dzieciństwa do wykonywania prostych obliczeń. W Excel VBA operatory te służą do wykonywania obliczeń na zmiennych i liczbach. Oni są:

(+) Dodawanie arytmetyczne:Ten operator służy do dodawania dwóch lub więcej liczb lub wartości dwóch lub więcej zmiennych. Poniższe wiersze sumują wartości dwóch zmiennych i drukują je w komórce "A1".

Podtest() a=10 b=12 Zakres("A1").wartość=a+b Napis końcowy

A1 będzie miał 22. Ten operator działa również jako operator konkatenacji. Jeśli oba a i b będą miały wartości łańcuchowe, operator + będzie działał jako operator konkatenacji. Zobaczymy jak, w dalszej części artykułu.

(-) Odejmowanie arytmetyczne:Ten operator służy do odejmowania jednej wartości od innej wartości zmiennych. Poniższa linia odejmuje wartość a od b i drukuje ją w komórce "A1".

Podtest() a=10 b=12 Zakres("A1").wartość=b-a Napis końcowy

A1 na arkuszu będzie miał 2.

(*) Mnożenie arytmetyczne:Ten operator służy do mnożenia lub uzyskiwania iloczynu dwóch lub więcej liczb lub wartości dwóch lub więcej zmiennych. Poniższe wiersze mnożą wartości dwóch zmiennych i drukują je w komórce "A1".

Podtest() a=10 b=12 Zakres("A1").wartość=a*b Napis końcowy

Komórka A1 będzie miała wartość 120.

(/) Podział arytmetyczny:Ten operator służy do dzielenia jednej wartości od drugiej. Poniższa linia dzieli wartość b przez zmienną a i drukuje ją w komórce „A1”.

Podtest() a=10 b=12 Zakres("A1").wartość=b/a Napis końcowy

Komórka A1 będzie miała wartość 1.2.

(Mod) Operator arytmetycznej reszty w VBA: Podczas gdy większość PL używa % (modułu) do uzyskania reszty, w VBA używamy słowa kluczowego Mod. Ten operator jest używany do uzyskania przypomnienia po podzieleniu jednej wartości od drugiej. Poniższy wiersz dzieli wartość b przez zmienną a i wyświetla wartość przypomnienia w komórce A1.

Podtest() a=10 b=4 Zakres("A1").wartość=Mod b Napis końcowy 

Komórka A1 będzie miała wartość 2.

(^) Wykładniczy arytmetyczny:Ten operator służy do przekazywania wykładnika jednej wartości do drugiej. Poniższe linie dają nam wartość 3 dla wykładniczego 4.

Podtest() a=3 b=4 Zakres("A1").wartość=a^b Napis końcowy

Komórka A1 będzie miała wartość 81 (3x3x3x3).

Operatory te w VBA stosują się do zasady BODMAS. W VBA jest tylko 6 operatorów arytmetycznych. Istnieje kilka operatorów, które działają jak dwa typy operatorów, takie jak +. Dowiesz się o nich podczas przechodzenia tego samouczka.

3. Operatory porównania

Kiedy chcemy porównać dwie wartości w VBA, używamy operatorów porównania. Wynik operatora porównania jest zawsze logiczny. Jeśli stwierdzenie jest prawdziwe, wynik to TRUE. Jeśli stwierdzenie jest fałszywe, wartość to False. Operatory te są często używane w podejmowaniu decyzji w VBA. Zobaczmy, jakie one są:

(=) Równa się:Tak, znak = (równa się) jest również używany jako operator porównania w VBA. Kiedy chcemy sprawdzić, czy dwie zmienne są równe, czy nie, używamy tego operatora porównania.

Sub Test() a=3 b=4 Jeśli a=b to 'Zwróci false MsgBox "A i b są równe." „to nie zostanie wykonane. Else MsgBox "A i b nie są równe" End IF End Sub

W powyższym przykładzie używamy instrukcji If i sprawdzamy, czy wartości aib są równe. Najwyraźniej nie są. Stąd wypisywana jest instrukcja Else.

Możesz to sprawdzić, po prostu używając instrukcji.

a=3 b=4 debug.print a=b

Spowoduje to wydrukowanie False w bezpośrednim oknie.

(<) Mniej niż:Służy do sprawdzania, czy lewa wartość jest mniejsza niż prawa wartość, czy nie.

Podtest() a=3 b=4 Jeśli a

W powyższym przykładzie sprawdzamy, czy wartość a jest mniejsza niż b. Ponieważ jest to prawda, instrukcja if zostanie wykonana, a Else nie.

Możesz to sprawdzić po prostu za pomocą instrukcji.

a=3 b=4 debug.drukuj a<>

Spowoduje to wydrukowanie True w bezpośrednim oknie.

(<=) Mniejsze lub równe:Służy do sprawdzania, czy lewa wartość jest mniejsza lub równa prawej wartości, czy nie.

Sub Test() a=4 b=4 Jeśli a<=b to 'Zwróci True MsgBox "A jest mniejsze lub równe b." „to zostanie wykonane. Else MsgBox "A nie jest równe ani mniejsze niż b." „to nie zostanie wykonane. Koniec JEŚLI Koniec Sub

W powyższym przykładzie sprawdzamy, czy wartość a jest mniejsza niż b. Ponieważ jest to prawda, instrukcja If jest wykonywana, a Else nie.

Możesz to sprawdzić po prostu za pomocą instrukcji.

a=4 b=4 debug.print a<-b

Spowoduje to wydrukowanie True w bezpośrednim oknie.

(>) Większe niż:Służy do sprawdzania, czy lewa wartość jest większa niż prawa wartość, czy nie.

Sub Test() a=3 b=4 Jeśli a>b to 'Zwróci False MsgBox "A jest większe niż b." – To nie zostanie wykonane. Else MsgBox "A nie jest większe niż b." – To zostanie wykonane. Koniec JEŚLI Koniec Sub

W powyższym przykładzie sprawdzamy, czy wartość a jest większa niż b. Ponieważ jest to False, instrukcja if nie zostanie wykonana, a Else tak.

Możesz to sprawdzić, po prostu używając instrukcji.

a=3 b=4 debug.print a>b

Spowoduje to wydrukowanie False w bezpośrednim oknie.

(>=) Większe niż:Służy do sprawdzania, czy lewa wartość jest większa lub równa prawej wartości, czy nie.

Sub Test() a=3 b=4 Jeśli a>=b to 'Zwróci False MsgBox "A jest większe lub równe b." – To nie zostanie wykonane. Else MsgBox "A nie jest większe ani równe b." – To zostanie wykonane. Zakończ JEŚLI

W powyższym przykładzie sprawdzamy, czy wartość a jest większa lub równa b. Ponieważ jest to False, instrukcja if nie zostanie wykonana, a Else tak.

Możesz to sprawdzić po prostu za pomocą instrukcji.

a=3 b=4 debug.print a>=b

Spowoduje to wydrukowanie False w bezpośrednim oknie.

() Nie równa się:Służy do sprawdzania, czy lewa wartość nie jest równa wartości prawej.

Sub Test() a=3 b=4 Jeśli ab, to 'Zwróci True MsgBox "A nie jest równe b", 'To zostanie wykonane. Else MsgBox "A i b są równe." – To nie zostanie wykonane. Koniec JEŚLI Koniec Sub

W powyższym przykładzie sprawdzamy, czy wartość a wynosi nie równa b. Ponieważ jest to prawda, instrukcja If zostanie wykonana, a Else nie.

Możesz to sprawdzić po prostu za pomocą instrukcji.

a=3 b=4 debug.print ab

Spowoduje to wydrukowanie True w bezpośrednim oknie.

Powyższe sześć operatorów nazywamy operatorami porównania, ponieważ używamy ich do porównywania dwóch wartości lub zmiennych. Będziesz ich często używać w VBA do podejmowania decyzji w VBA.

4. Operatory logiczne

Operatory logiczne służą do wykonywania operacji logicznych na jednej lub kilku zmiennych. Wynikiem takich operacji zawsze jest PRAWDA lub FAŁSZ. Operatory logiczne często (nie zawsze) są używane do sprawdzania więcej niż jednego warunku.

Poniżej znajdują się operatory logiczne, których używamy w VBA:

VBA I Operator (I lub *): Operator VBA AND służy do upewnienia się, że warunki po jego lewej i prawej stronie są prawdziwe. Jeśli którykolwiek z warunków jest fałszem, całe stwierdzenie spowoduje fałsz. Używamy słowa kluczowego And lub znaku * (gwiazdka) dla operacji AND.

Sprawdź poniższe oświadczenie:

Podtest() a = 10 b = 20 Jeśli a < 15 I b < 15 Wtedy MsgBox "a i b oba są mniejsze niż 15." – To się nie wykonuje. Else MsgBox "Albo a lub b jest większe lub równe 15." – To zostaje wykonane. Zakończ, jeśli Zakończ Sub 

Kiedy uruchamiamy powyższy fragment, druga instrukcja if nie jest wykonywana. Ponieważ pierwsze zdanie po lewej stronie jest prawdziwe, ale zdanie po prawej to Fałsz. Stąd całe stwierdzenie zwraca False.

W większości języków symbol & jest używany jako operator AND, ale nie w VBA. W VBA możesz użyć operatora mnożenia * (gwiazdka) jako operatora AND, aby upewnić się, że oba warunki są spełnione.

W powyższym przykładzie możesz użyć poniższej instrukcji if, aby zrobić to samo.

Jeśli (a < 15) * (b < 15) Wtedy

Aby oddzielić instrukcje warunkowe, należy użyć nawiasów. W przeciwnym razie oświadczenia będą zgodne z zasadą BODMAS, a wynik będzie niedokładny.

P1: Jaki będzie wynik poniższego oświadczenia? Daj mi znać w sekcji komentarzy poniżej:

debug.print a10 AND a=(b/2) AND a<>

Gdy wartość a wynosi 15, a b wynosi 30. Zapisz w sekcji komentarzy poniżej.

Operator LUB VBA (Lub lub +): Operator OR jest używany, gdy chcemy upewnić się, że warunek Lewy ma wartość PRAWDA lub warunek Prawy ma wartość PRAWDA. Jeśli którykolwiek z dwóch warunków jest spełniony, wynik będzie prawdziwy. Używamy słowa kluczowego OR między dwoma wyrażeniami boolowskimi. Możesz również użyć znaku + (plus) dla operacji LUB. Tylko upewnij się, że używasz nawiasów poprawnie, aby wypowiedzi były jasne podczas używania znaku +.

Sprawdź poniższy kod:

Podtest() a = 10 b = 20 Jeśli a < 15 Lub b < 15 Wtedy MsgBox "Albo a lub b jest mniejsze niż 15." – To zostaje wykonane. Else MsgBox "Ani a, ani b nie jest mniejsze niż 15." – To się nie wykonuje. Zakończ, jeśli Zakończ Sub

Kiedy wykonamy powyższy kod, pierwsza wiadomość zostanie wyświetlona, ​​a druga wiadomość zostanie pominięta. Ponieważ a jest mniejsze niż 15, a b nie. Aby uzyskać wynik jako prawdziwy, wystarczy jeden warunek, aby był True z operatorem OR.

Piszesz oświadczenie jako:

Jeśli (a < 15) + (b < 15) Wtedy

P2: Jaki będzie wynik poniższego oświadczenia? Daj mi znać w sekcji komentarzy poniżej:

debug.print a10 Lub a=(b/2) lub a<>

Gdy wartość a wynosi 10, a b wynosi 5. Zapisz w sekcji komentarzy poniżej.

Operator VBA NOT (nie): Operator Not służy do odwracania wartości logicznej. Innymi słowy, instrukcja z operatorem Not zwraca True tylko wtedy, gdy instrukcja przed nim jest False. Na przykład, jeśli użyjesz słowa kluczowego Not przed True Statement, otrzymamy False i vice versa. W VBA używamy Nie słowo kluczowe, aby sprawdzić, czy coś nie jest prawdą lub fałszem (?).

Podtest() a = 10 b = 10 Jeśli nie a = b Wtedy MsgBox "a i b nie są równe." Else MsgBox "a i b są równe."'Zostaje wykonany End If End Sub

W powyższym kodzie oświadczenieNie a = bzwróci fałsz. Początkowo a=b jest prawdziwe, ale ponieważ wcześniej użyliśmy Not, wynik jest odwrócony, a instrukcja zamienia się w False. W powyższym przykładzie użyliśmy tylko wcześniejszych instrukcji. Możesz mieć tyle instrukcji, ile chcesz przed operatorem Nie. Wystarczy umieścić je w nawiasach.

P3: Jaki będzie wynik poniższego oświadczenia? Daj mi znać w sekcji komentarzy poniżej:

debug.print a10 Lub nie (a=(b/2) * a<>

Gdy wartość a wynosi 10, a b wynosi 5. Zapisz w sekcji komentarzy poniżej.

5. Operatory konkatenacji (& lub +)

Te operatory służą do łączenia ciągów. Symbol & służy do łączenia tekstów. Zalecanym operatorem jest łączenie ciągów. Możesz jednak również użyć znaku +, aby połączyć.

Znak plusa łączy dwie zmienne tylko wtedy, gdy obie są łańcuchami. Jeśli którykolwiek z ciągów nie jest ciągiem, znak + będzie działał jako operator dodawania.

Zobacz poniższy kod:

Sub test() a="Exceltip" b=" to numer " c= 1 d= 2 Debug.print a & b & c 'to spowoduje wyświetlenie "Exceltip to numer 1" Debug.print a + b & c & d ' spowoduje to wydrukowanie „Exceltip to numer 12 'Debug.print a + b + c 'to będzie błąd. End Sub

W powyższym kodzie pierwsze dwie linie będą działały idealnie. W trzecim wierszu wystąpi błąd, ponieważ próbujemy dodać tekst z liczbami. Do łączenia liczb zawsze używamy & (amp).

Operatory wielofunkcyjne w VBA

Z powyższych przykładów na pewno nauczyłeś się, że istnieje wiele operatorów, które działają różnie w różnych sytuacjach.

Znak + działa jako operator dodawania podczas pracy z liczbami. Podczas pracy z wartościami boolowskimi znak plus działa jako operator Or w VBA. W przypadku użycia z wartościami łańcuchowymi operator plus działa jako operator konkatenacji. Obowiązują poniższe wiersze:

Debug.Print 10+20 ' wyświetla 30. + działa jako operator dodawania. Debug.Print (1020) ' drukuje True. + działa jako operator Or. Debug.Print "10" + "20" 'Wypisuje 1020. Znak + działa jako operator konkatenacji. 

Znak gwiazdki (*) działa jako operator mnożenia, gdy operandy są numeryczne. Gdy operandy są logiczne, gwiazdka działa jako And Operator.

Poniższe wiersze kodu działają idealnie.

Debug.Print 10*20 ' wypisuje 200. * działa jako operator mnożenia. Debug.Print (1020) ' wyświetla wartość False. Znak + działa jako operator I. 

Więc tak, to wszystko o operatorach w VBA. Mam nadzieję, że to było pomocne. Jeśli masz jakiekolwiek wątpliwości dotyczące operatorów w VBA, zapytaj w sekcji komentarzy poniżej.

Instrukcja If ElseIf w instrukcji VBA|In If ElseIf , następny warunek jest sprawdzany tylko wtedy, gdy poprzedni warunek zostanie spełniony. Po spełnieniu warunku kod w tym bloku jest wykonywany, a układ sterowania wychodzi z bloku If.

Zakres zmiennej Excel VBA | VBA również ma specyfikatory zakresu. Te specyfikatory zakresu mogą służyć do ustawiania widoczności/zakresu zmiennej w Excel VBA.

Instrukcja wyboru przypadku VBA | Instrukcje Select Case są przydatne, gdy masz zbyt wiele warunków do sprawdzenia. Są doskonałym zamiennikiem wielu instrukcji If ElseIf.

Używanie pętli w VBA w Microsoft Excel | Pętle w VBA umożliwiają nam wykonywanie podobnego zadania w kółko bez powtarzania kodu. W Excel VBA istnieją 3 rodzaje pętli.

Argumenty ByRef i ByVal |Gdy argument jest przekazywany jako argument ByRef do innej podrzędnej lub funkcji, wysyłane jest odwołanie do rzeczywistej zmiennej. Wszelkie zmiany dokonane w kopii zmiennej zostaną odzwierciedlone w oryginalnym argumencie.

Wyświetl komunikat na pasku stanu Excel VBA Pasek stanu w programie Excel może być używany jako monitor kodu. Gdy twój kod VBA jest długi i wykonujesz kilka zadań za pomocą VBA, często wyłączasz aktualizację ekranu, aby nie widzieć migotania ekranu

Wyłącz komunikaty ostrzegawcze przy użyciu VBA W programie Microsoft Excel 2016|Ten kod nie tylko wyłącza alerty VBA, ale także zwiększa wydajność czasową kodu. Zobaczmy jak.

Popularne artykuły:

50 skrótów Excela zwiększających produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.

Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.

LICZ.JEŻELI w programie Excel 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby policzyć konkretną wartość. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.

Jak korzystać z funkcji SUMA.JEŻELI w programie Excel | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.