ВБА више (угњеждених) иф изјава

Овај водич ће вам показати како да користите угнежђене наредбе Иф у ВБА

Ако вам изрази дозвољавају да тестирате један услов у ВБА да бисте видели да ли је услов Тачан или Нетачан, и у зависности од одговора, код ће се померити у правцу истинитог или лажног исказа.

Јединствени ИФ исказ

1234567891011 Суб ТестИфДим к као Интегерк = 10Ако је к = 10 тада'ако је к 10, услов је тачанМсгБок к је 10 "Иначе'ако к није 10, услов је нетачанПорука „к није 10“Крај АкоЕнд Суб

Објашњени угнежђени ИФ -ови

Угњежђени Иф вам омогућава да поставите више услова ИНСИДЕ у сваки од тачних и/или лажних исказа оригиналног Иф.

1234567891011121314151617181920212223242526 Суб ТестНстедИф ()Дим к као ИнтегерДим и као ИнтегерДим з као Интегерк = 10и = 9з = 8Ако је к = 10 тада'ако је к 10, услов је тачан, па тестирајте за иАко је и = 8 тадаМсгБок "и је 9"Иначе'ако и није 10, услов је лажанПорука „и није 9“Крај АкоИначе'ако к није 10 онда је услов нетачан, па хајде' тестирамо зАко је з = 8, ондаМсгБок "з је 8"Иначе'ако з није 8, услов је нетачанПорука за поруке "з није 10"Крај Ако'још један крај Ако је потребно за затварање оригинала акоКрај АкоЕнд Суб

Увлачење кода када га пишете увек је добра пракса јер чини код лаким за читање и праћење када морате да му се вратите у некој фази, или када други програмер мора да га прочита.

Такође бисмо могли креирати функцију коју је дизајнирао корисник (УДФ) и позвати вредности неких ћелија из програма Екцел у функцију помоћу параметара.

1234567891011121314151617181920 Функција ГетИф (к као Интегер, и као Интегер, з као Интегер) као СтрингАко је к = 10 тада'ако је к 10, услов је тачан, па тестирајте за иАко је и = 8 тадаГетИф = "и је 9"Иначе'ако и није 10, услов је лажанГетИф = "и није 9"Крај АкоИначе'ако к није 10 онда је услов нетачан, па хајде' тестирамо зАко је з = 8 тадаГетИф = "з је 8"Иначе'ако з није 8, услов је нетачанГетИф = "з није 10"Крај Ако'још један крај Ако је потребно за затварање оригинала акоКрај АкоЗавршна функција

Пример угнежђен ако је практичан

Размотрите следећу функцију:

12345678910111213141516171819202122 Функција ГетДисцоунт (дблПрице Ас Доубле) Као ДоублеАко је дблЦена> = 1000 Тада'ако је цена већа од 1000, доделите попустАко је дблПрице> = 2000 Тада'ако је већи од 2000, дајте 10% попустаГетДисцоунт = дблПрице * 0.1Иначе'У супротном дајте 5% попустаГетДисцоунт = дблПрице * 0.05Крај Ако'ако цена није већа од 1000Иначе'ако је већи од 500, дајте 2,5% попустаАко је дблЦена> = 500 ТадаГетДисцоунт = дблПрице * 0.025Иначе'иначе нема попустаГетДисцоунт = 0Крај Ако'још један крај Ако је потребно за затварање оригинала акоКрај АкоЗавршна функција

Користећи ову функцију у Екцел листу, можемо тестирати да видимо укупну цену наруџбе и применити различите попусте у зависности од тог збира.

ВБА програмирање | Генератор кода ради за вас!

Користећи ЕлсеИф

ЕлсеИф нам омогућава да поједноставимо ваш код јер је прешао на другу наредбу иф само ако прва враћа вредност фалсе.

12345678910111213141516 Функција ГетДисцоунт (дблПрице Ас Доубле) Ас Доубле'користите елсе ако смањите писање кодаАко је дблЦена> = 2000 ТадаГетДисцоунт = дблПрице * 0.1Остало ако је дблПрице> = 1000 ТадаГетДисцоунт = дблПрице * 0.075Остало ако је дблПрице> = 500 ТадаГетДисцоунт = дблПрице * 0.05Остало ако је дблПрице> = 200 ТадаГетДисцоунт = дблПрице * 0.025Остало ако је дблПрице> = 100 ТадаГетДисцоунт = дблПрице * 0,01ИначеГетДисцоунт = 0Крај АкоЗавршна функција

Коришћење изјаве случаја

Такође можемо користити изјаву случаја да постигнемо исти ефекат.

1234567891011121314151617 Функција ГетДисцоунт (дблПрице Ас Доубле) Ас ДоублеОдаберите Цасе дблПрице„Ова изјава случаја има 6 различитих нивоа попустаСлучај је> = 2000ГетДисцоунт = дблПрице * 0.1Случај је> = 1000ГетДисцоунт = дблПрице * 0.075Случај је> = 500ГетДисцоунт = дблПрице * 0.05Случај је> = 200ГетДисцоунт = дблПрице * 0.025Случај је> = 100ГетДисцоунт = дблПрице * 0,01Цасе ЕлсеГетДисцоунт = 0Крај ИзаберитеЗавршна функција

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

wave wave wave wave wave