Mundarija
Ushbu maqolada men sizga Excel-dagi vaziyatni qanday tahlil qilishni ko'rsataman VBA agar hujayrada qiymat bo'lsa. Vaziyatni har qanday qiymat va ma'lum bir qiymat uchun tahlil qilishni o'rganasiz.
Excel VBA tahlili: Agar hujayrada qiymat bo'lsa, u holda (Tezkor ko'rish)
9568
Amaliy kitobni yuklab oling
Ushbu maqolani o'qiyotganingizda mashq qilish uchun ushbu mashq kitobini yuklab oling.
VBA If Cell Contains Value then.xlsm
Excel VBA tahlili: Agar hujayrada qiymat bo'lsa, natijalarni qaytaring (bosqichma-bosqich tahlil)
Bu erda biz fizika, kimyo, va kungaboqar bolalar bog'chasi deb nomlangan maktabda matematika.
Bo'sh katakchalar o'quvchi ko'rinmaganligini, ya'ni o'sha imtihonda qatnashmaganligini bildiradi. Keling, ushbu ma'lumotlar to'plami bilan hujayrada qiymat mavjudmi yoki yo'qmi, vaziyatni tahlil qilaylik.
⧪ 1-qadam: Hujayrani e'lon qilish
Birinchi navbatda, qiymatini tahlil qilmoqchi bo'lgan hujayrani e'lon qiling. Keling, Jennifer Marlo Fizika imtihonida qatnashganmi yoki yo'qmi, tahlil qilaylik.
Shuning uchun biz C12 katakchasida qiymat bor yoki yo'qligini tekshirishimiz kerak.
Buni amalga oshirish uchun, avval C12 katakchasini e'lon qilishimiz kerak.
Buni amalga oshirish uchun kod qatori quyidagicha bo'ladi:
7055
⧪ 2-qadam: Hujayra tarkibida mavjudligini tekshirish a Qiymat (shu jumladan alohida qiymat)
Keyin, biz tekshiramiz.hujayrada qiymat bor yoki yo'q. Buni Agar shart yordamida bajaramiz. Kod qatori quyidagicha bo'ladi:
2531
Ushbu kod hujayrada biron bir qiymat bo'lsa, bajariladi. Qiymat mavjudligini tekshirish uchun (masalan, unda 100 bor yoki yo'q), o'sha maxsus qiymatdan Teng belgisi bilan foydalaning.
2105
⧪ 3-qadam: Vazifani taqsimlash
Keyin, agar hujayrada qiymat (yoki ma'lum bir qiymat bo'lsa) bajariladigan vazifani o'rnatishingiz kerak.
Bu erda biz xabarni ko'rsatmoqchimiz. “Jennifer Marlo fizika imtihonida qatnashdi.” . Shunday qilib, kod qatori quyidagicha bo'ladi:
4815
⧪ 4-qadam: If blokini tugatish
Nihoyat, If blokining tugashini e'lon qilishingiz kerak.
3242
Shunday qilib, to'liq VBA kodi quyidagicha bo'ladi:
⧭ VBA kodi:
2515
⧭ Chiqish:
Ushbu kodni asboblar panelidagi Sub/UserForm-ni ishga tushirish tugmasini bosish orqali ishga tushiring.
U “Jennifer Marlo fizika imtihonida paydo boʻldi.” xabarini koʻrsatadi, chunki C12 katakchada 50 qiymat mavjud.
Agar hujayrada qiymat bo'lsa, Excel VBA yordamida ma'lum bir natijaga oid misollar
Biz hujayrada qiymat yoki qiymat borligini tahlil qilishni o'rgandik. VBA da emas. Keling, tushunarli bo'lishi uchun bir nechta misollarni ko'rib chiqaylik.
1. Qiymatni filtrlash uchun makrosni ishlab chiqish Agar tegishli katakda biron bir qiymat mavjud bo'lsa, Excel VBA da
Keling, faylni ishlab chiqamiz. Makro har bir imtihonda qatnashgan talabalarni filtrlash uchun.
Ya'ni, biz har bir fanning belgilarini o'z ichiga olgan katakchalarni tekshirishimiz va ularda qiymat bor-yo'qligini tekshirishimiz kerak. yoki yo'q.
Agar ular shunday bo'lsa, biz mos keladigan talabaning ismini saralashimiz kerak.
Buni amalga oshirish uchun to'liq VBA kodi:
⧭ VBA kodi:
8122
⧭ Chiqish:
Ma'lumotlar to'plamini tanlang ( Shu jumladan Sarlavhalar ) va ushbu Makro -ni ishga tushiring.
Avval sizdan birinchisining havolasini kiritish soʻraladi. filtrlangan ma'lumotlarni kerakli hujayra. Men G3 ga kirdim.
Keyin OK tugmasini bosing. Siz har bir imtihonda qatnashgan talabalarning ismlarini (jumladan, Sarlavhalar ) G3 katakchadan boshlab yangi ma'lumotlar to'plamida olasiz.
2. Qiymatni saralash uchun foydalanuvchi tomonidan belgilangan funktsiyani yaratish Agar mos keladigan katakda ma'lum bir qiymat bo'lsa, Excel VBA da
Endi biz o'quvchilarning ismlarini qaytaradigan foydalanuvchi tomonidan belgilangan funktsiyani yaratamiz. har bir fandan ma'lum ball olganlar.
Protsedura yuqoridagi kabi deyarli bir xil. Biz mavzularning har birining belgilarini o'z ichiga olgan katakchalarni tekshirishimiz va ular ma'lum bir qiymatga teng yoki teng emasligini tekshirishimiz kerak.
Agar ular bo'lsa, biz tegishli talabaning ismini qaytaramiz.
VBA kodi quyidagicha bo'ladi:
⧭ VBAKod:
8184
⧭ Chiqish:
Kod Qiymatli_yacheykalar deb nomlangan funktsiyani yaratadi. ikkita argument oladi, a Range va Qiymat .
Keling, ushbu funktsiyadan foydalanib, har bir fandan 100 ball olgan talabalarni aniqlaymiz.
Ish varaqingizdagi katakchalar qatorini tanlang va diapazonning birinchi katagiga ushbu funksiyani kiriting:
=Cells_with_Values(B3:E13,100)
[Bu yerda B3: E3 mening ma'lumotlar to'plamim (shu jumladan Sarlavhalar ) va 100 - mening mos keladigan qiymatim. Siz o'zingizdan foydalanasiz.]
Keyin CTRL + SHIFT + ENTER ( Masiv formulasi ) tugmalarini bosing. U har bir fandan 100 ball olgan talabalarning ismlaridan iborat massivni qaytaradi, jumladan Sarlavhalar .
3. Agar mos keladigan katak Excel VBA-da biron bir qiymatni (yoki ma'lum bir qiymatni) o'z ichiga olgan bo'lsa, qiymatni chiqarish uchun foydalanuvchi formasini ishlab chiqish
Nihoyat, biz UserForm -ni ishlab chiqamiz. ba'zi maxsus imtihonlarda qatnashgan (yoki aniq baho olgan) talabalarning ismlari.
⧪ 1-qadam: UserFormni ochish
Qo'shish > Yangi UserForm ochish uchun VBA muharriridagi UserForm opsiyasi. UserForm1 deb nomlangan yangi UserForm ochiladi.
⧪ 2-qadam: Asboblarni UserForm-ga sudrab olib borish
UserForm bilan bir qatorda siz Asboblar qutisi ni ham olasiz. Kursorni Asboblar qutisi ustiga olib boring va 4 ta tegni (Label1, Label2,Label3, Label4) va 3 roʻyxat qutilari (ListBox1, ListBox2, ListBox3) va TextBox (MatnBox1) UserForm ustidagi toʻrtburchak shaklda.
Keyin yana Label (Label5) va TextBox (TextBox2) ni UserForm pastki chap burchagiga torting.
Nihoyat, Buyruq tugmachasini (Buyruq tugmasi1) pastki o‘ng burchakka torting.
Yorliqlar displeylarini Izlash ustuni ga o‘zgartiring, Ustunni qaytarish , Har qanday qiymat yoki ma'lum qiymat , Qiymat, va Boshlang'ich katak.
Shuningdek, Buyruq tugmasi1 displeyini OK ga o'zgartiring.
⧪ 3-qadam: ListBox3 uchun kod yozish
ListBox3 ustiga ikki marta bosing. ListBox3_Click deb nomlangan Shaxsiy pastki protsedura ochiladi. U yerga quyidagi kodni kiriting.
6107
⧪ 4-qadam: Buyruq tugmasi1 uchun kod yozish
Keyin Buyruq1-ni ikki marta bosing. . CommandButton1_Click deb nomlangan yana bir Maxfiy subprotsedura ochiladi. U yerga quyidagi kodni kiriting.
6099
⧪ 5-qadam: UserFormni ishga tushirish uchun kod yozish
Nihoyat,
2187
⧪ 6-qadam: UserFormni ishga tushirish (Yakuniy natija)
Sizning UserForm endi foydalanishga tayyor. Ishchi varaqdan ma'lumotlar to'plamini tanlang ( B3:E13 bu yerda) (shu jumladan Sarlavhalar ) va Run_UserForm deb nomlangan Makro ni ishga tushiring.
UserForm ishchi varaqda yuklanadi. Izlash ustuni jadvalidan men Fizika va Matematika ni tanladim, chunki men Fizika da paydo bo'lgan talabalar ismlarini olishni xohlayman. va Matematika imtihonlari.
Qaytish ustuni jadvalidan men Talaba ismi ni tanladim, chunki men talaba ismlarini olishni xohlayman.
Va Har qanday qiymat yoki maxsus qiymat jadvalidan men Har qanday qiymat ni tanladim.
Nihoyat, Boshlash katakchasida qutisiga G3 qo'ydim.
Keyin OK tugmasini bosing. Siz Fizika va Matematika imtihonlarida qatnashgan talabalarning ismlarini G3 katakchasidan boshlab olasiz.
Agar siz Har qanday qiymat yoki maxsus qiymat jadvalidan Maxsus qiymat ni tanlagan boʻlsangiz, maʼlum qiymatni kiritish uchun sizda boshqa Matn qutisi boʻlar edi.
Bu yerda men 100 ni kiritdim.
OK tugmasini bosing. Siz Fizika va Kimyo fanlaridan 100 olgan talabalarni olasiz.
Eslash kerak bo'lgan narsalar
Biz ikki o'lchovli massivdan foydalanib, Foydalanuvchi tomonidan aniqlangan funksiya misolda tasvirlangan 2 da talaba ismlarini qaytarish uchun foydalandik.