VBA превключвател - Как да използвате изявление за превключване в Excel VBA?

Съдържание:

Anonim

Изявление за превключване на VBA в Excel

Превключването в VBA е подобно на функция за избор на случай. Единствената разлика между тях е, че трябва да пишем много по-малко кодове в превключвател в сравнение с избрания случай. Можем да напишем оператор за превключване в подпроцедура или да го запишем като дефинирана от потребителя функция в VBA.

Switch в VBA оценява израз и дава изхода въз основа на условията за този израз. В декларации за избрани случаи дефинирахме случаи, че ако имаме случай, резултатът трябва да бъде b и така нататък. Това изисква да напишем много кодове за оператора за избор на случай, но в Switch можем да обединим всички условия и изрази в едно изявление, а не да имаме множество оператори на случай.

Синтаксис на изявление за превключване

Switch изчислява първия израз и ако стойността е вярна, тя връща стойността за израза и ако стойността за израз 1 не е вярна, тя продължава за същото изчисление за израз 2 и ако резултатът е вярно, тогава се показва стойност 2, но ако изразът се връща е невярно, превключването преминава към друг израз.

И така, какво се случва, ако никой от израза не е верен и всички те са върнати като False, в такъв случай получаваме грешка във времето за изпълнение, освен ако не използваме превантивно грешка при подобен сценарий.

Как да използвате изявление за превключване в Excel VBA?

По-долу са дадени различните примери за използване на VBA превключвател в Excel.

Можете да изтеглите този шаблон на VBA Switch Excel тук - VBA Switch Excel шаблон

VBA превключвател - пример №1

Нека започнем с основния пример, за да добием представа за оператора VBA switch. Ще вземем вход от потребителя и въз основа на този вход ще определим изхода. Ще вземем въвеждане от номер 1 до 5 и въз основа на въвеждането ще имаме предварително определени резултати, но ако потребителят въведе друго число, различно от нашия обхват, ще трябва да се справим с тази грешка.

Следвайте стъпките по-долу, за да използвате извлечение за превключване в Excel VBA:

Стъпка 1: От визуалния основен раздел въведете VB редактора от раздела на програмиста.

Стъпка 2: В прозореца на редактора на VB поставете нов модул от раздела Вмъкване.

Стъпка 3: Декларирайте нова подпроцедура в току-що създадения нов модул.

Код:

 Sub Sample () Край Sub 

Стъпка 4: Декларирайте две променливи A и B, едната като цяло число, а другата като низ.

Код:

 Sub Sample () Dim A като цяло число Dim B като String End Sub 

Стъпка 5: В променлива А, съхранението на стойността се дава от потребителя, използвайки функцията поле за въвеждане.

Код:

 Подпроба () Dim A като цяло число Dim B като низ A = InputBox ("Въведете стойност", "стойността трябва да бъде между 1 до 5") Край Sub 

Стъпка 6: Сега в Променлива B ще използваме оператор VBA превключвател, за да оценим резултата според всеки вход, предоставен от потребителя.

Код:

 Подпроба () Dim A като цяло число Dim B като низ A = InputBox ("Въведете стойност", "стойността трябва да бъде между 1 до 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") Край Sub 

Стъпка 5: Показва стойността, запаметена в B, използвайки функцията MSGBOX.

Код:

 Подпроба () Dim A като цяло число Dim B като низ A = InputBox ("Въведете стойност", "стойността трябва да бъде между 1 до 5") B = Switch (A = 1, "One", A = 2, "Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") MsgBox B End Sub 

Стъпка 6: Стартирайте горния код, като натиснете клавиша F5 и той ни моли да въведем цяло число. Въведете номер 3 и натиснете ОК, за да видите резултата.

Стъпка 7: Сега нека отново да въведем кода и да въведем числото 6 и да видим резултата, който получаваме.

Получаваме грешка във времето на изпълнение, тъй като в нашата декларация за превключване няма израз, който да дефинира 6. Така че при такива сценарии трябва да имаме някои превантивни обработки на грешки.

Стъпка 8: За да преодолеете тази грешка във времето на изпълнение, декларирайте друга променлива Var като вариант.

Код:

 Подпроба () Dim A като цяло число Dim B като String Dim var като вариант A = InputBox ("Въведете стойност", "стойността трябва да бъде между 1 до 5") B = Switch (A = 1, "One", A = 2, "Две", A = 3, "Три", A = 4, "Четири", A = 5, "Пет") MsgBox B End Sub 

Стъпка 9: Преди нашата инструкция за превключване, използвайте on error goto statement, така че ако кодът открие грешка, той знае къде да отиде.

Код:

 Подпроба () Dim A като цяло число Dim B като String Dim var като вариант A = InputBox („Въведете стойност“, „стойността трябва да е между 1 до 5“) При грешка GoTo var B = Switch (A = 1, „One ", A = 2, " Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") MsgBox B End Sub 

Стъпка 10: Сега определете какво ще се случи, ако кодът срещне грешка,

Код:

 Подпроба () Dim A като цяло число Dim B като String Dim var като вариант A = InputBox („Въведете стойност“, „стойността трябва да е между 1 до 5“) При грешка GoTo var B = Switch (A = 1, „One ", A = 2, " Two ", A = 3, " Three ", A = 4, " Four ", A = 5, " Five ") MsgBox B var: MsgBox" Въведохте невалиден номер "Resume Next End Sub 

Стъпка 11: Сега нека стартираме кода отново чрез натискане на F5 или щракване върху бутона за възпроизвеждане и стойност на въвеждане 6 и след това натиснете OK, за да видите крайния резултат в случай, че изявлението за превключване срещне грешка.

VBA превключвател - пример №2

За този пример имам данни в лист 1, който съдържа името на някои филми и продължителността им в минути. Въз основа на тяхната дължина искам да определя филма е кратък дълъг или супер дълъг. Разгледайте данните по-долу.

Следвайте стъпките по-долу, за да използвате извлечение за превключване в Excel VBA:

Стъпка 1: Нека започнем в един и същ модул и започнем с дефиниране на друга подпроцедура, както следва.

 Sub Sample1 () Край Sub 

Стъпка 2: Декларирайте две променливи A и B, едната като цяло число, а String, както следва,

 Sub Sample1 () Dim A като цяло число Dim B като String End Sub 

Стъпка 3: Сега в променлива A нека съхраняваме стойността на дължината на филма за всеки от филмите.

 Sub Sample1 () Dim A като цяло число Dim B като низ A = обхват („A3“). Отместване (0, 1) .Value End Sub 

Стъпка 4: Сега в променлива B, нека използваме оператор за превключване на VBA, за да определим какъв би бил сценарият за всяка дължина на филма.

 Подпроба1 () Dim A като цяло число Dim B като низ A = обхват ("A3"). Отместване (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ") Край Sub 

Стъпка 5: Сега какво ще стане, ако стойността е по-голяма от 180, трябва ли тук да имаме друг манипулатор на грешки или просто можем да напишем друг израз като True, Value. Тъй като всички останали стойности ще бъдат върнати, тъй като фалшивият код ще изпълни този израз.

 Подпроба1 () Dim A като цяло число Dim B като низ A = обхват ("A3"). Отместване (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ", Вярно, " Скучно ") End Sub 

Стъпка 6: Показва стойността на B с помощта на функцията msgbox.

 Подпроба1 () Dim A като цяло число Dim B като низ A = обхват ("A3"). Отместване (0, 1) .Value B = Switch (A <= 70, "Too Short", A <= 100, "Short ", A <= 120, " Long ", A <= 150, " Too Long ", Вярно, " Скучно ") MsgBox B End Sub 

Стъпка 7: Стартирайте кода чрез натискане на клавиша F5 или като кликнете върху бутона Възпроизвеждане и вижте изхода.

В клетката A3 има филм 2, чиято дължина е 100, така че изходът е кратък.

VBA превключвател - пример №3

Нека използваме оператор за превключване, за да направим определена от потребителя функция за горния пример, така че да можем да го използваме в нашия работен лист, когато е необходимо.

Следвайте стъпките по-долу, за да използвате извлечение за превключване в Excel VBA:

Стъпка 1: В същия модул декларирайте функция, наречена като дължина на филма.

 Функция FilmLength (Удължаване като цяло число) Като функция на низовия край 

Стъпка 2: Сега използвайте оператор VBA Switch, за да определите параметрите въз основа на дължината, както следва,

 Функция FilmLength (дължина като цяло число) като String FilmLength = превключвател (дължина <= 70, "твърде кратко", дължина <= 100, "къса", дължина <= 120, "дълга", дължина <= 150, "твърде дълго", Вярно, "Скучна") Крайна функция 

Стъпка 3: Сега нека да влезем в работния лист, където имахме нашите данни, въведете = FilmLength (

Стъпка 4: Можем да видим, че нашата функция там дава аргумент като стойности в клетка B2.

Стъпка 5: След прилагане на формулата натиснете enter.

Стъпка 6: Сега плъзнете функцията към клетка C10 и вижте резултата.

Неща, които трябва да запомните

  • Switch функция оценява израза в него. Ако първият израз е оценен като истина, той не оценява останалите изрази.
  • Ако никой от израза не е верен, той връща грешка във времето на изпълнение.
  • Трябва да имаме средство за обработка на грешки в инструкцията за превключване или израз, така че ако всеки израз се върне невярно, ние не срещаме грешка във времето на изпълнение.
  • Превключвателят е подобен на избора на декларация за случай.

Препоръчителни статии

Това е ръководство за VBA Switch. Тук обсъждаме как да използвате командата за превключване в excel VBA, заедно с някои практически примери и изтеглящ се шаблон на excel. Можете да разгледате и другите ни предложени статии -

  1. Използване на VBA InStr функция
  2. Excel SWITCH функция
  3. Случайно число на VBA
  4. CONCATENATE функция в Excel