ВБА Логички тип података (Дим Вариабле)

Логички тип променљиве

ВБА Боолеан тип података користи се за складиштење Труе или Фалсе вредности. Тачно се такође може представити са 1, а лажно са 0.

Да бисте прогласили логичку променљиву, користите изјаву Дим (скраћено од Димензија):

1 Дим блнА као Боолеан

Затим, да бисте доделили вредност променљивој, једноставно користите знак једнакости:

1 блнА = Тачно

Када ово ставите у процедуру, то би могло изгледати овако:

123456789101112 Под блнЕкампле ()'декларише логичку променљивуДим блнА као Боолеан'покрените код да бисте попунили променљиву - обично је код наредба иф или цасеАко је опсег ("А1")> 0 ондаблнА = тачноИначеблнА = НетачноКрај Ако'прикажи оквир за порукуМсгБок "Тест за проверу да ли ћелија има вредност већу од 0 је" & блнАЕнд Суб

Ако покренете горњи код, приказаће се следеће поље за поруку.

Прогласите логичку променљиву на модулу или глобалном нивоу

У претходном примеру смо прогласили Боолеан променљива у оквиру процедуре. Варијабле декларисане процедуром могу се користити само у оквиру те процедуре.

Уместо тога, можете прогласити логичке променљиве на модулу или глобалном нивоу.

Ниво модула

Изјављујете Ниво модула променљиве на врху модула кода са Замутити изјава.

Ове променљиве се могу користити са било којом процедуром у том кодном модулу.

Глобални ниво

Такође изјављујете Глобални ниво променљиве на врху модула кода. Међутим, уместо да користите Замутити изјаву, користили бисте Јавно изјава која указује да је Боолеан Променљива је доступна за коришћење током целог вашег ВБА пројекта.

1 Јавна блнА као Боолеова

Ако бисте прогласили Боолеан променљиву на нивоу модула, а затим покушајте да је користите у другом модулу, добићете грешку.

Међутим, да сте користили кључну реч Публиц за декларацију Боолеан варијабла, грешка се не би догодила и процедура би радила савршено.

Коришћење логичке променљиве

У логичком поређењу користите логичку променљиву. Они се често користе са наредбама Иф за тестирање да ли је услов Тачан или Нетачан према горе наведеном примеру, или у реду кода за примену логичког теста - можда да се види да ли је једна вредност већа од друге.

12345678 Под блнЕкампле ()'прогласити логичку променљивуДим блнА Као Боолеов'тестирајте да видите да ли је један број већи од следећегблнА = 45> 68'прикажи оквир за порукуМсгБок блнАЕнд Суб

Ако покренете горњи код, добићете следеће поље за поруку.

јер наравно 45 није већи од 68!

Коришћење логичких оператора

Како се Боолеове варијабле користе у логичком поређењу, можемо користити логичке операторе АНД и ОР за тестирање да видимо да ли је више од једног услова тачно или не.

Коришћење оператора АНД

Помоћу функције АНД можемо видети да ли су испуњена ОБА услова.

12345678 Под блнЕкампле ()'прогласити логичку променљивуДим блнА Као Боолеан'Користите оператор АНД да бисте проверили да ли су оба услова тачнаблнА = 10> 13 и 15> 12'прикажи оквир за порукуМсгБок блнАЕнд Суб

или бисмо могли да покренемо исти тест користећи Иф Статемент:

123456789101112 Под блнЕкампле ()'декларише логичку променљивуДим блнА Као Боолеов'Користите оператор АНД да бисте проверили да ли су оба услова тачнаАко је 10> 13 и 15> 12, тадаблнА = ТачноИначеблнА = НетачноКрај Ако'прикажи оквир за порукуМсгБок блнАЕнд Суб

Оба горња примера би се вратила ФАЛСЕ због чињенице да је 10 НЕ већи од 13 - и ОБОЈЕ услови морају бити Тачни да би логичко стање било Тачно.

Коришћење оператора ОР

Можемо користити функцију ОР да видимо да ли је ЈЕДАН ОД услова испуњен.

12345678 Под блнЕкампле ()'декларише логичку променљивуДим блнА Као Боолеов'Користите оператор АНД да бисте проверили да ли су оба услова тачнаблнА = 10> 13 Или 15> 12'прикажи оквир за порукуМсгБок блнАЕнд Суб

или бисмо могли да покренемо исти тест користећи Иф Статемент:

123456789101112 Под блнЕкампле ()'декларише логичку променљивуДим блнА Као Боолеан'Користите оператор АНД да бисте проверили да ли су оба услова тачнаАко је 10> 13 ИЛИ 15> 12 ТадаблнА = ТачноИначеблнА = НетачноКрај Ако'прикажи оквир за порукуМсгБок блнАЕнд Суб

Ови примери би се вратили ИСТИНА због чињенице да 10 НИЈЕ веће од 13 АЛИ 15 ЈЕ веће од 12 - иСАМО ЈЕДАН услов мора бити Тачан да би Боолеан био Тачан.

Коришћење наредби Иф омогућава нам коришћење више логичких оператора

Коришћење оператора НОТ

Такође можемо користити оператор НОТ са логичком променљивом. Оператор НОТ негира вредност услова - па ако је услов тачан, оператор НОТ ће вратити вредност фалсе.

12345678910111213141516 Суб ФиндДифференцес ()'декларишу променљиве опсегаДим рнг1 Ас РангеДим рнг2 Ас Ранге'активирајте први листРадни листови („Лист1“). Активирајте'попуњавају опсегеПодеси рнг1 = Распон ("А3")Подеси рнг2 = Распон ("Б3")'користите оператор НОТ да видите да ли су вредности једнаке или не.Ако није рнг1.Валуе = рнг2.Валуе ЗатимМсгБок "Вредности у ћелијама нису једнаке"ИначеМсгБок "Вредности у ћелијама су једнаке"Крај АкоЕнд Суб

Коришћење Ксор логичког оператора

ТхеКсор логички оператор се користи за упоређивање два или више услова. Ако је један од услова тачан, вратиће се ТРУЕ. Ако постоје 2 услова, а НИТИ су тачни или ОБА су тачни, вратит ће се ФАЛСЕ.

1234567891011121314151617 Под блнЕкампле ()'декларишите целе бројевеДим интА Ас ИнтегерДим интБ Ас Интегер'прогласити логичку променљивуДим блнРесулт Као Боолеан'попуните променљивеинтА = 5интБ = 10'проверите да ли је истинаАко је интА = 5 Ксор интБ = 5 ТадаблнРесулт = ТачноИначеблнРесулт = НетачноКрај АкоМсгБок блнРесултЕнд Суб

У горњем примеру, пошто је ЈЕДАН од услова ТРУЕ, оквир за поруку ће се вратити ИСТИНА.

1234567891011121314151617 Под блнЕкампле ()'декларишите целе бројевеДим интА Ас ИнтегерДим интБ Ас Интегер'прогласити логичку променљивуДим блнРесулт Као Боолеан'попуните променљивеинтА = 5интБ = 5'проверите да ли је истинаАко је интА = 5 Ксор интБ = 5 ТадаблнРесулт = ТачноИначеблнРесулт = НетачноКрај АкоМсгБок блнРесултЕнд Суб

Међутим, у горњем примеру, пошто су ОБА услова тачна, оквир за поруку ће се вратити ФАЛСЕ.

1234567891011121314151617 Под блнЕкампле ()'декларишите целе бројевеДим интА Ас ИнтегерДим интБ Ас Интегер'прогласити логичку променљивуДим блнРесулт Као Боолеан'попуните променљивеинтА = 6интБ = 8'проверите да ли је једно тачноАко је интА = 5 Ксор интБ = 5 ТадаблнРесулт = ТачноИначеблнРесулт = НетачноКрај АкоМсгБок блнРесултЕнд Суб

и на крају, пошто су оба услова ФАЛСЕ, оквир за поруку ће такође вратити ФАЛСЕ.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave