Excel VBA: калі ячэйка змяшчае значэнне, то вяртае зададзены вынік

  • Падзяліцца Гэтым
Hugh West

У гэтым артыкуле я пакажу вам, як можна прааналізаваць сітуацыю ў Excel VBA , калі ячэйка змяшчае значэнне. Вы навучыцеся аналізаваць сітуацыю як для любога значэння, так і для канкрэтнага значэння.

Аналіз Excel VBA: калі ячэйка змяшчае значэнне, то (хуткі прагляд)

6315

Спампаваць практычны сшытак

Спампуйце гэты сшытак для практыкаванняў, пакуль вы чытаеце гэты артыкул.

VBA If Cell Contains Value Then.xlsm

Аналіз Excel VBA: калі ячэйка змяшчае значэнне, то вяртае вынікі (пакрокавы аналіз)

Тут у нас ёсць набор даных з адзнакамі некаторых студэнтаў па фізіцы, хіміі, і матэматыкі ў школе пад назвай "Сланечнікавы дзіцячы сад".

Пустыя вочкі азначаюць, што вучань не з'явіўся, гэта значыць, адсутнічаў на гэтым іспыце. Зараз давайце прааналізуем сітуацыю, утрымлівае ячэйка значэнне ці не, з гэтым наборам даных.

⧪ Крок 1: Аб'яўленне ячэйкі

Спачатку мы павінны аб'явіць вочка, значэнне якой мы хочам прааналізаваць. Давайце прааналізуем, з'явілася Джэніфер Марла на экзамене па фізіцы ці не.

Такім чынам, нам трэба праверыць, ці ўтрымлівае ячэйка C12 значэнне.

Для гэтага, спачатку мы павінны аб'явіць ячэйку C12 .

Радок кода для гэтага будзе наступным:

9981

⧪ Крок 2: Праверка, ці ўтрымлівае ячэйка значэнне (уключаючы канкрэтнае значэнне)

Далей мы павінны праверыць, ціячэйка змяшчае значэнне ці не. Мы выканаем гэта з дапамогай умовы If . Радок кода будзе выглядаць так:

6999

Гэты код будзе выкананы, калі ячэйка змяшчае якое-небудзь значэнне. Каб праверыць значэнне (напрыклад, утрымлівае яно 100 ці не), выкарыстоўвайце гэтае значэнне з сімвалам Роўна .

9106

⧪ Крок 3: размеркаванне задачы

Тады вы павінны наладзіць задачу, якая будзе выканана, калі ячэйка змяшчае значэнне (ці пэўнае значэнне).

Тут мы хочам паказаць паведамленне «Джэніфер Марла з'явілася на экзамене па фізіцы». . Такім чынам, радок кода будзе наступным:

3339

⧪ Крок 4: Завяршэнне блока If

Нарэшце, вы павінны аб'явіць канец блока If.

7269

Такім чынам, поўны код VBA будзе:

⧭ Код VBA:

7072

⧭ Вывад:

Запусціце гэты код, націснуўшы кнопку Выканаць суб/форму карыстальніка на панэлі інструментаў.

Адлюструецца паведамленне «Джэніфер Марла здавалася на экзамене па фізіцы». , паколькі ячэйка C12 змяшчае значэнне 50 .

Прыклады, калі ячэйка ўтрымлівае значэнне, а затым вызначаны вывад з Excel VBA

Мы навучыліся аналізаваць, ці ўтрымлівае ячэйка значэнне або не ў VBA . Зараз давайце разгледзім некаторыя прыклады, каб зрабіць разуменне ясным.

1. Распрацоўка макраса для фільтрацыі значэння Калі адпаведная ячэйка змяшчае якое-небудзь значэнне, то ў Excel VBA

Давайце распрацуем Макра , каб адфільтраваць студэнтаў, якія здалі кожны экзамен.

Гэта значыць, мы павінны праверыць клеткі, якія змяшчаюць адзнакі па кожным з прадметаў, і паглядзець, ці ўтрымліваюць яны значэнне ці не.

Калі яны гэта робяць, то мы павінны адсартаваць імя адпаведнага студэнта.

Поўны код VBA для гэтага будзе:

⧭ Код VBA:

5792

⧭ Вывад:

Выберыце набор даных ( У тым ліку Загалоўкі ) і запусціце гэты Макрас .

Спачатку вам будзе прапанавана ўвесці спасылку на першы вочка, у якую вы хочаце атрымаць адфільтраваныя даныя. Я ўвёў G3 .

Затым націсніце ОК . Вы атрымаеце імёны студэнтаў, якія здалі кожны экзамен (уключаючы Загалоўкі ) у новым наборы даных, пачынаючы з ячэйкі G3 .

2. Стварэнне вызначанай карыстальнікам функцыі для сартавання значэння, калі адпаведная ячэйка змяшчае пэўнае значэнне, то ў Excel VBA

Цяпер мы створым вызначаную карыстальнікам функцыю, якая будзе вяртаць імёны студэнтаў якія атрымалі пэўную адзнаку па кожным з прадметаў.

Працэдура амаль такая ж, як і вышэй. Мы павінны праверыць ячэйкі, якія змяшчаюць адзнакі па кожным з прадметаў, і паглядзець, роўныя яны пэўнаму значэнню ці не.

Калі так, то мы вернем імя адпаведнага студэнта.

Код VBA будзе:

⧭ VBAКод:

7829

⧭ Вывад:

Код стварае функцыю пад назвай Cells_with_Values , якая прымае два аргументы: Дыяпазон і Значэнне .

Давайце даведаемся студэнтаў, якія атрымалі 100 балаў па кожным з прадметаў з дапамогай гэтай функцыі.

Выберыце дыяпазон ячэек у працоўным аркушы і ўвядзіце гэту функцыю ў першую ячэйку дыяпазону:

=Cells_with_Values(B3:E13,100)

[Тут B3: E3 - гэта мой набор даных (уключаючы Загалоўкі ), а 100 - маё адпаведнае значэнне. Вы карыстаецеся сваім.]

Затым націсніце CTRL + SHIFT + ENTER ( Формула масіву ). Ён верне масіў, які складаецца з імёнаў студэнтаў, якія атрымалі 100 балаў па кожным прадмеце, уключаючы Загалоўкі .

3. Распрацоўка UserForm для вылучэння значэння, калі адпаведная ячэйка ўтрымлівае якое-небудзь значэнне (або канкрэтнае значэнне) у Excel VBA

Нарэшце, мы распрацуем UserForm для вылучэння імёны студэнтаў, якія здалі (або атрымалі пэўныя адзнакі) на пэўных іспытах.

⧪ Крок 1: Адкрыццё UserForm

Перайдзіце да Insert > Параметр UserForm у рэдактары VBA для адкрыцця новай UserForm . Будзе адкрыта новая UserForm пад назвай UserForm1 .

⧪ Крок 2: Перацягванне інструментаў у UserForm

Акрамя UserForm , вы атрымаеце Toolbox . Навядзіце курсор на Toolbox і перацягніце 4 цэтлікі (Label1, Label2,Label3, Label4) і 3 ListBoxes (ListBox1, ListBox2, ListBox3) і TextBox (TextBox1) у прамавугольнай форме над UserForm .

Затым перацягніце іншую Метку (Label5) і Тэкставае поле (TextBox2) у ніжні левы кут Карыстальніцкай формы .

Нарэшце, перацягніце CommandButton (CommandButton1) у ніжні правы кут.

Зменіце адлюстраванне Цэткі на Слупок пошуку , Калонка вяртання , Любое значэнне або канкрэтнае значэнне , Значэнне, і пачатковая ячэйка.

Таксама змяніце адлюстраванне CommandButton1 на OK .

⧪ Крок 3: Напісанне кода для ListBox3

Двойчы пстрыкніце па ListBox3 . Адкрыецца Прыватная падпрацэдура пад назвай ListBox3_Click . Увядзіце там наступны код.

1706

⧪ Крок 4: Напісанне кода для CommandButton1

Затым двойчы пстрыкніце па CommandButton1 . Адкрыецца іншая прыватная падпрацэдура пад назвай CommandButton1_Click . Увядзіце там наступны код.

6335

⧪ Крок 5: Напісанне кода для запуску UserForm

Нарэшце, устаўце новы Модуль з Панэль інструментаў VBA і ўстаўце туды наступны код.

2665

⧪ Крок 6: Запуск UserForm (канчатковы вынік)

Ваша UserForm цяпер гатовая да выкарыстання. Выберыце набор даных з аркуша ( B3:E13 тут) (у тым ліку Загалоўкі ) ізапусціце Macro пад назвай Run_UserForm .

UserForm будзе загружана ў працоўны ліст. У табліцы Слупок пошуку я выбраў Фізіка і Матэматыку , таму што хачу атрымаць імёны студэнтаў, якія з'явіліся ў Фізіцы і экзамены Матэматыка .

У табліцы Калонка вяртання я выбраў Імя студэнта , таму што хачу атрымаць імёны студэнтаў.

І з табліцы Любое значэнне або канкрэтнае значэнне я выбраў Любое значэнне .

Нарэшце, у пачатковай ячэйцы , я паставіў G3 .

Затым націсніце ОК . Вы атрымаеце імёны студэнтаў, якія здалі экзамены па фізіцы і матэматыцы , пачынаючы з клеткі G3 .

Калі б вы выбралі Пэўнае значэнне з табліцы Любое значэнне або канкрэтнае значэнне , вы б атрымалі яшчэ адно Тэкставае поле для ўводу пэўнага значэння.

Тут я ўвёў 100 .

Націсніце ОК . І вы атрымаеце студэнтаў, якія атрымалі 100 па фізіцы і хіміі .

Што трэба памятаць

Мы выкарыстоўвалі двухмерны масіў для вяртання імёнаў студэнтаў у Функцыях, вызначаных карыстальнікам апісаным у прыкладзе 2 .

Х'ю Уэст з'яўляецца вельмі дасведчаным трэнерам і аналітыкам Excel з больш чым 10-гадовым вопытам работы ў галіны. Ён мае ступень бакалаўра ў галіне бухгалтарскага ўліку і фінансаў і ступень магістра дзелавога адміністравання. Х'ю захапляецца навучаннем і распрацаваў унікальны падыход да навучання, які лёгка прытрымлівацца і зразумець. Яго экспертныя веды Excel дапамаглі тысячам студэнтаў і спецыялістаў па ўсім свеце палепшыць свае навыкі і атрымаць поспех у сваёй кар'еры. Праз свой блог Х'ю дзеліцца сваімі ведамі з усім светам, прапаноўваючы бясплатныя падручнікі па Excel і онлайн-трэнінгі, каб дапамагчы прыватным асобам і прадпрыемствам цалкам раскрыць свой патэнцыял.