فهرست مطالب
شما می توانید از توابع داخلی کاربرگ Excel مانند عملکرد VLOOKUP ، عملکرد CHOOSE و عملکرد PMT در کد VBA و برنامه های کاربردی خود استفاده کنید. همچنین. در واقع، اکثر توابع کاربرگ Excel قابل دسترسی و استفاده در VBA کد هستند. مانند استفاده از INDEX & توابع کاربرگ MATCH در کد VBA اکسل.
چرا می خواهید از توابع Excel Worksheet در VBA خود استفاده کنید کد ؟ خوب برای گسترش عملکرد کدی که استفاده می کنید. همچنین، شما مجبور نیستید توابع خود را ایجاد کنید، مگر اینکه واقعاً نیاز داشته باشید، اگر عملکرد از قبل وجود داشته باشد. تنها کاری که اساساً باید انجام دهید این است که به عملکردی که نیاز دارید دسترسی داشته باشید زیرا از قبل وجود دارد و دیگر نیازی به اختراع مجدد چرخ نیست.
بنابراین، بیایید با مثالی شروع کنیم که نحوه استفاده از INDEX MATCH را نشان می دهد. با Excel VBA.
ما از عملکردهای INDEX و MATCH در Excel VBA استفاده می کنیم کد ، به منظور ایجاد یک UserForm ساده. با استفاده از فرم، کاربر نام دانش آموز را انتخاب می کند و سپس جنسیت متناظر دانش آموز و رنگ چشم بازیابی و برگردانده می شود.
دانلود کتاب تمرین تمرین
لطفا کتاب تمرین تمرین را دانلود کنید خودتان تمرین کنید.
INDEX-MATCH.xlsx
9 مرحله آسان برای استفاده از INDEX و MATCH در کد VBA
INDEX و MATCH توابع اغلب به صورت ترکیبی در فرمول ها به منظور انجام جستجوهای پیشرفته استفاده می شوند. این دو در ترکیب، مزایای خاصی را نسبت به VLOOKUP ارائه میدهند.
ما قبلاً به تفصیل به نحوه استفاده از INDEX و MATCH برای اجرای پیشرفته پرداختهایم. در Excel Workbook به عنوان فرمول کاربرگ مستقیم، در آموزش قبلی جستجو می کند. اکنون میخواهیم ببینیم که چگونه از توابع INDEX و MATCH با هم در VBA code استفاده کنیم تا عملکرد مشابهی را به جستجوی UserForm که می خواهیم ایجاد کنیم.
مرحله 1: اعمال توابع INDEX و MATCH در مجموعه داده
- ما با دو برگه در ماکرو خود شروع می کنیم کتاب کار فعال شده یکی یک برگه خالی به نام UserForm ، دیگری برگه ای به نام StudentInformation ، که شامل محدوده ای است که نام دانش آموزان، جنسیت متناظر آنها، و رنگ چشم را به عنوان نشان می دهد. نشان داده شده در زیر و MATCH توابع در یک فرمول، در کاربرگ واقعی به ما می دهد تا جنسیت نام دانش آموزی را که می خواهیم جستجو کنیم. ما از فرمول زیر استفاده می کنیم:
=INDEX(B2:B31, MATCH("Diana Graham", A2:A31, 0))
- با فشار دادن CTRL-ENTER ، مقدار Females را به عنوان جنسیت که در زیر نشان داده شده است، دریافت می کنیم.
مرحله 2: نام ستون B را به StudentNames تغییر دهید.
- اکنون محدوده را A2: A31 ، StudentNames مطابق شکل زیر نامگذاری می کنیم.
- برگ StudentInformation را با کلیک راست و انتخاب Hide مخفی کنید. ایده خوبی است که کاربرگ های پشتی که حاوی اطلاعات هستند را به صورت سطحی مخفی کنید. شما نمی خواهید کاربر ویرایش کند یا ببیند.
مرحله 3: پنجره ویژوال بیسیک را باز کنید
- اکنون با فعال شدن برگه UserForm، به می رویم. توسعه دهنده > کد > Visual Basic برای باز کردن Visual Basic Editor (VBE) .
- یک بار در Interface VBE ، مانند شکل زیر به Insert, UserForm می رویم. .
مرحله 4: تغییر ویژگی ها و افزودن کادرهای متنی
- با استفاده از پنجره Properties ، نام فرم خود را به StudentLookup تغییر می دهیم، عنوان را به جستجوی اطلاعات دانشجویی تغییر می دهیم، BackColor را به آبی روشن تغییر می دهیم و ارتفاع را روی 300<2 تنظیم می کنیم> px و عرض به 350 px. اگر پنجره Properties نمایش داده نشد، کلید F4 را روی صفحه کلید خود فشار دهید تا آن را ببینید.
- ما اکنون یک برچسب با استفاده از جعبه ابزار درج می کند (اگر نمی توانید جعبه ابزار را ببینید، به دلایلی به View بروید، جعبه ابزار )، عنوان را به انتخاب دانش آموز تغییر دهید و ما آن را تغییر خواهیم داد. در این حالت BackColor به سفید می رسد. فونت را روی Georgia ، سبک قلم را روی بولد ، اندازه قلم را بر روی 12 ، و مرکز متن را تراز کنید. جلوه ویژه استفاده شده همانگونه که در زیر نشان داده شده است 1– fmSpecialEffectRaised خواهد بود.
- اکنون یک جعبه ترکیبی در زیر قرار می دهیم برچسب. نام این جعبه ترکیبی را cmdStudentName بگذارید و برای RowSource ، StudentNames را تایپ کنید.
- برای دیدن اثر تنظیم RowSource در جعبه ترکیبی، کلیک کنید روی دکمه Run Sub/UserForm .
- اکنون به دلیل تنظیم RowSource به محدوده نامگذاریشده، وقتی کاربر روی فلش کشویی در UserForm کلیک میکند، کادر ترکیبی نام دانشآموزان را از محدوده نامگذاریشده بهطور خودکار مانند شکل زیر نشان میدهد.
- UserForm را با کلیک بر روی دکمه بستن ببندید. Alt-F11 را فشار دهید تا به VBE برگردید.
- پس از بازگشت به VBE ، یک برچسب دیگر به UserForm اضافه کنید ( در زیر جعبه ترکیبی) و Caption را به Gender تغییر دهید و در این مورد BackColor را به سفید تغییر می دهیم. فونت را روی Georgia ، سبک قلم را روی پررنگ ، اندازه قلم را روی 12 ، و center متن را تراز می کنیم. . جلوه ویژه مورد استفاده همانگونه که در زیر نشان داده شده است 1– fmSpecialEffectRaised خواهد بود.
- ایجاد یک جعبه متن در زیر جنس برچسب ، و نام آن را txtGender بگذارید.
- یک برچسب دیگر به نام چشم<2 اضافه کنید> رنگ و یک جعبه متن به نام txtEyeColour همانطور که در زیر نشان داده شده است. برای اطمینان از اینکه UserForm ظاهری ثابت دارد، از همان ویژگیهایی برای برچسب استفاده کنید که برای دو برچسب دیگر که قبلاً به فرم اضافه شدهاند.
- مرکز به صورت افقی، همانطور که در زیر نشان داده شده است. بیشتر: نحوه استفاده از فرمول INDEX MATCH در اکسل (9 مثال)
خواندنی های مشابه
- Excel INDEX MATCH اگر سلول حاوی متن باشد
- نحوه استفاده از فرمول INDEX-MATCH در اکسل برای ایجاد چندین نتیجه
- Index Match مجموع چند ردیف در اکسل (3 روش)
- آموزش برنامه نویسی Excel VBA و amp; ماکروها (آموزش رایگان – گام به گام)
- 22 مثال ماکرو در Excel VBA
مرحله 5: افزودن یک دکمه از جعبه ابزار
- بعد، یک دکمه را با استفاده از Toolbox به فرم اضافه کنید. Name دکمه را به cmdLookUp ، BackColor را به نارنجی روشن تغییر دهید، فونت Tahoma را نگه دارید و تغییر سبک به پررنگ ، در نهایت Caption دکمه را به نگاه کنید بالا دانشجو تغییر دهید جزئیات همانطور که در زیر نشان داده شده است.
مرحله 6: کد VBA را وارد کنید
- کلیک راست کنید ، دکمه جدید اضافه شده، و انتخاب مشاهده کد .
- کد زیر را برای دکمه وارد کنید رویداد کلیک کنید:
5952
ما با اعلام سه متغیر شروع می کنیم و نوع داده متغیر را به این متغیرها اختصاص می دهیم. انواع داده های مختلف نوع دادهی متغیر، نوع دادهای خوب برای شروع است. زیرا هنگام کار با کاربرگ توابع ، ممکن است همیشه از خروجی ها مطمئن نباشید. بنابراین، زمانی که شروع به کار می کنید، از نوع داده متفاوت استفاده کنید.
بعداً، توصیه می شود از یکی از انواع داده های خاص دیگر مانند integer یا string استفاده کنید. برای کدهای پیشرفتهتر طولانیتر، نوع دادههای متغیر مانند سایر انواع دادهها از حافظه استفاده نمیکند.
متغیر a مقدار را از گزینهای که کاربر انتخاب میکند، ترسیم کنید. جعبه ترکیبی کشویی در UserForm . اگر انتخابی وجود ندارد، همه کادرهای متنی دیگر خالی خواهند بود.
اگر نام دانش آموزی را از ترکیب جعبه انتخاب کنید UserForm، سپس متغیر b با استفاده از تابع INDEX Worksheet در ترکیب با MATCH Function در کد VBA ، همانطور که نشان داده شده است.
این مقدار را اساساً با استفاده از نحو مشابه تابع کاربرگ جستجو می کند. هنگام استفاده از توابع کاربرگ در VBA ، VBA IntelliSense در این مورد خاص خیلی شهودی نیست، بنابراین آشنایی بانحو جمع آوری شده از دانش کاربرگ توصیه می شود. متغیر c با استفاده از INDEX Worksheet Function در ترکیب با MATCH Function<، مقدار را ترسیم می کند. 2> در کد VBA هنگامی که کاربر گزینه ای را از جعبه ترکیبی انتخاب می کند.
متغیر b از جنس <1 به مقدار می رسد>column در کاربرگ، در حالی که متغیر c مقدار را از ستون رنگ چشم در کاربرگ دریافت می کند.
جعبه متن جنسیت با b پر شده است. مقدار و کادر متنی رنگ چشم با مقدار c پر شده است.
بیشتر بخوانید: Excel VBA Events (راهنمای کامل)
مرحله 7: یک دکمه فرمان را وارد کنید
- اکنون به صفحه کاری به نام UserForm در کتاب کار خود بروید. همانطور که در زیر نشان داده شده است آن را فرمت کنید و تصویر ارائه شده توسط ExcelWIKI را درج کنید .
- رفتن به Developer > کنترلها > درج > ActiveX Controls.
- درج یک دکمه همانطور که نشان داده شده است.
- با انتخاب دکمه، به Developer > کنترلها > خواص .
- تغییر نام دکمه به cmdShowForm و Caption برای Gookup اطلاعات دانشجو .
مرحله 8: مشاهده جستجوی کد
- روی دکمه راست کلیک کنید و انتخاب کنید مشاهده کد همانطور که نشان داده شده استدر زیر.
- کد زیر را وارد کنید:
4837
مرحله 9: نمایش نتیجه نهایی
- بازگشت به کاربرگ. مطمئن شوید که علامت طراحی حالت را انتخاب نکنید. برای نمایش فرم روی دکمه
- کلیک کنید .
- انتخاب کنید نام یک دانش آموز با استفاده از جعبه ترکیبی . کد به طور خودکار جنسیت و رنگ چشم دانش آموز را برمی گرداند.
به خاطر داشته باشید که کتاب کار خود را ذخیره به عنوان یک کتاب کار با قابلیت ماکرو فعال کنید. ، اگر قبلاً این کار را انجام نداده اید و دارید، ما از INDEX & توابع کاربرگ MATCH در کد VBA اکسل به منظور ایجاد فرم جستجو.
بیشتر بخوانید: فرمول اکسل INDEX-MATCH برای برگرداندن مقادیر چندگانه به صورت افقی
نتیجه
اکسل دارای توابع کاربرگ مفید بسیاری است که می توان از آنها در VBA استفاده کرد، مانند مانند، با استفاده از INDEX & عملکردهای کاربرگ را در کد VBA اکسل مطابقت دهید. این توابع به شما امکان می دهند کد VBA خود را گسترش دهید. اگر از قبل می دانید که چگونه در یک اکسل<2 استاندارد کار می کنند. پس منحنی یادگیری با تطبیق دانش برای VBA چندان عالی نیست. دسترسی به توابع کاربرگ در VBA کد می تواند باعث صرفه جویی در زمان واقعی شود. زیرا نیازی به توسعه توابع سفارشی برای عملکردی نیست که از قبل وجود دارد.
همچنین ببینید: تقسیم رشته بر اساس کاراکتر در اکسل (6 روش مناسب)لطفاً در نظر داشته باشید و بگوییداگر از توابع کاربرگ در کد VBA و برنامههای کاربردی خود استفاده میکنید.
همچنین ببینید: برجسته کردن موارد تکراری در چندین کاربرگ در اکسل (3 فرمول)بخش بررسی: درک خود را آزمایش کنید
1) یک لیست ساده از سه مورد از جمله نارنگی، هویج و پرتقال را در ستون A تنظیم کنید. ، سپس در سلول کنار هر یک از موارد در ستون B لیست می کند که آیا موارد در ستون A میوه هستند یا سبزیجات، پس از تکمیل تنظیم داده های نمونه خود، از INDEX & عملکرد ترکیبی MATCH برای نشان دادن میوه یا سبزیجات بودن هویج.
2) از این مجموعه داده از ESPN در سرمربیان NFL و تیم مربوطه ای که آنها مربیگری می کنند استفاده کنید. یک فرم کاربری ایجاد کنید که به کاربر اجازه می دهد نام یک مربی خاص را در یک جعبه متن وارد کند. سپس تیمی را که او مربیگری میکند، در کادر متنی دیگری که کاربر روی ارسال کلیک میکند، تحویل بگیرید. از INDEX & MATCH ترکیب تابع کاربرگ در کد VBA شما.