Logický typ údajov VBA (premenná dimenzie)

Booleovský typ premennej

Na ukladanie hodnôt True alebo False sa používa boolovský údajový typ VBA. Pravda môže byť tiež reprezentovaná 1 a nepravdivá 0.

Ak chcete deklarovať booleovskú premennú, použite príkaz Dim (skratka pre dimenziu):

1 Dim blnA ako booleovský

Potom na priradenie hodnoty premennej jednoducho použijete znamienko rovnosti:

1 blnA = Pravda

Keď to zadáte do postupu, môže to vyzerať takto:

123456789101112 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský„Spustite kód na vyplnenie premennej - kód je zvyčajne príkaz if alebo caseAk je rozsah („A1“)> 0, potomblnA = pravdaInakblnA = nepravdaKoniec Ak“Zobraziť pole so správouMsgBox "Test, či bunka má hodnotu väčšiu ako 0, je" & blnAKoniec pod

Ak spustíte kód uvedený vyššie, zobrazí sa nasledujúce okno so správou.

Deklarujte booleovskú premennú na modulovej alebo globálnej úrovni

V predchádzajúcom príklade sme deklarovali súbor Booleovský premenná v rámci procedúry. Premenné deklarované pomocou postupu je možné použiť iba v rámci tohto postupu.

Namiesto toho môžete deklarovať booleovské premenné na úrovni modulu alebo na globálnej úrovni.

Úroveň modulu

Prehlasujete Úroveň modulu premenné v hornej časti modulov kódu s príponou Dim vyhlásenie.

Tieto premenné je možné použiť s akýmkoľvek postupom v tomto module kódu.

Globálna úroveň

Tiež vyhlasujete Globálna úroveň premenné v hornej časti modulov kódu. Avšak namiesto použitia Dim vyhlásenie, použili by ste príponu Verejné vyhlásenie, ktoré naznačuje, že Booleovský premenná je k dispozícii na použitie vo vašom projekte VBA.

1 Verejné blnA ako logická hodnota

Ak by ste mali vyhlásiť Booleovský premennú na úrovni modulu a potom ju skúste použiť v inom module, zobrazí sa chyba.

Ak ste však na deklarovanie súboru použili kľúčové slovo Public Booleovský premenná, chyba by nenastala a postup by prebehol perfektne.

Použitie booleovskej premennej

V logickom porovnaní použijete boolovskú premennú. Často sa používajú s príkazmi If na testovanie, či je podmienka pravdivá alebo nepravdivá podľa vyššie uvedeného príkladu, alebo v riadku kódu na použitie logického testu - možno na zistenie, či je jedna hodnota väčšia ako druhá.

12345678 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský'vyskúšajte, či je jedno číslo väčšie ako ďalšieblnA = 45> 68“Zobraziť pole so správouMsgBox blnAKoniec pod

Ak spustíte kód uvedený vyššie, zobrazí sa nasledujúce okno so správou.

pretože 45 samozrejme nie je väčšie ako 68!

Použitie boolovských operátorov

Keďže na logické porovnávanie sa používajú logické premenné, môžeme na testovanie logických operátorov AND a OR zistiť, či je viac ako jedna podmienka pravdivá alebo nepravdivá.

Použitie operátora AND

Pomocou funkcie AND môžeme zistiť, či sú splnené OBOJ podmienky.

12345678 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský'Pomocou operátora AND vyskúšajte, či sú obe podmienky splnenéblnA = 10> 13 A 15> 12“Zobraziť pole so správouMsgBox blnAKoniec pod

alebo by sme mohli vykonať rovnaký test pomocou príkazu If:

123456789101112 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský'Pomocou operátora AND vyskúšajte, či sú obe podmienky splnenéAk 10> 13 A 15> 12 PotomblnA = PravdaInakblnA = nepravdaKoniec Ak“Zobraziť pole so správouMsgBox blnAKoniec pod

Oba vyššie uvedené príklady sa vrátia NEPRAVDA vzhľadom k tomu, že 10 je NIE viac ako 13 - a OBA podmienky musia byť pravdivé, aby bola logická hodnota pravdivá.

Použitie operátora ALEBO

Na zistenie, či je splnená JEDNA z podmienok, môžeme použiť funkciu ALEBO.

12345678 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský'Pomocou operátora AND vyskúšajte, či sú obe podmienky splnenéblnA = 10> 13 alebo 15> 12“Zobraziť pole so správouMsgBox blnAKoniec pod

alebo by sme mohli vykonať rovnaký test pomocou príkazu If:

123456789101112 Sub blnPriklad ()'deklarujte booleovskú premennúDim blnA ako booleovský'Pomocou operátora AND vyskúšajte, či sú obe podmienky splnenéAk 10> 13 ALEBO 15> 12 PotomblnA = PravdaInakblnA = nepravdaKoniec Ak“Zobraziť pole so správouMsgBox blnAKoniec pod

Tieto príklady by sa vrátili PRAVDA vzhľadom na skutočnosť, že 10 NIE je väčšie ako 13, ALE 15 JE väčšie ako 12 - aLEN JEDEN podmienka musí byť pravdivá, aby bola logická hodnota pravdivá.

Použitie príkazov If nám umožňuje použiť viac logických operátorov

Použitie operátora NOT

S booleovskou premennou môžeme použiť aj operátor NOT. Operátor NOT neguje hodnotu podmienky - takže ak je podmienka pravdivá, operátor NOT vráti hodnotu false.

12345678910111213141516 Rozdiel pod hľadaním ()'deklarovať premenné rozsahuDim rng1 As RangeDim rng2 As Range'aktivujte list jednaPracovné listy („List1“). Aktivujte„naplňte rozsahyNastaviť rng1 = rozsah ("A3")Nastaviť rng2 = rozsah ("B3")'Ak chcete zistiť, či sú hodnoty rovnaké alebo nie, použite operátor NOT.Ak nie je rng1.Value = rng2.Value PotomMsgBox „Hodnoty v bunkách nie sú rovnaké“InakMsgBox „Hodnoty v bunkách sú rovnaké“Koniec AkKoniec pod

Použitie logického operátora Xor

TheXor logický operátor sa používa na porovnanie dvoch alebo viacerých podmienok. Ak je jedna z podmienok pravdivá, vráti hodnotu PRAVDA. Ak existujú 2 podmienky a NIŽŠIE sú pravdivé alebo OBOJNÉ sú pravdivé, vráti sa NEPRAVDA.

1234567891011121314151617 Sub blnPriklad ()“deklarovať celé číslaDim intA ako celé čísloDim intB ako celé číslo'deklarujte booleovskú premennúDim blnVýsledok ako booleovský“vyplňte premennéintA = 5intB = 10“skontrolujte, či je jedna pravdaAk intA = 5 X alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec AkMsgBox blnVýsledokKoniec pod

Vo vyššie uvedenom príklade, pretože JEDNA z podmienok je PRAVDA, vráti sa okno so správou PRAVDA.

1234567891011121314151617 Sub blnPriklad ()“deklarovať celé číslaDim intA ako celé čísloDim intB ako celé číslo'deklarujte booleovskú premennúDim blnVýsledok ako booleovský“vyplňte premennéintA = 5intB = 5“skontrolujte, či je jedna pravdaAk intA = 5 X alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec AkMsgBox blnVýsledokKoniec pod

Vo vyššie uvedenom príklade, pretože sú splnené OBOJ podmienky, sa okno so správou vráti NEPRAVDA.

1234567891011121314151617 Sub blnPriklad ()“deklarovať celé číslaDim intA ako celé čísloDim intB ako celé číslo'deklarujte booleovskú premennúDim blnVýsledok ako booleovský“vyplňte premennéintA = 6intB = 8“skontrolujte, či je jedna pravdaAk intA = 5 X alebo intB = 5 PotomblnResult = PravdaInakblnResult = FalseKoniec AkMsgBox blnVýsledokKoniec pod

a nakoniec, keďže obe podmienky sú NEPRAVDIVÉ, pole so správou tiež vráti NEPRAVDIVÉ.

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave