برای ایجاد لیست کشویی با قابلیت جستجو ما به سه مرحله پردازش نیاز داریم:
1-تنظیمات combo box از ActiveX Controls
2-پردازش اطلاعات لیست
3-استفاده از یک کد کوتاه vba در قسمت کد نویسی
ابتدا از تب Developer از برگه insert یک combo box به شیت اضافه میکنیم.
با کلیک راست بر روی combo box و انتخاب گزینه properties موارد زیر را بر روی combo box انجام میدهیم :
قسمت AutoWordSelect را برابر با false قرار میدهیم.
LinkedCell را برابر آدرس مورد نظر که قراره لیست در آن نمایش داده شود قرار دهید . ( درفایل نمونه توضیحی سلول a3 میباشد)
در قسمت ListFillRange یک نام قرار بدید مثلا DropDownList ( توجه داشته باشید در قسمت name manager با همین نام باید محدوده ای پویا را نامگذاری کنیم.)
در قسمت MatchEntry گزینه 2 – fmMatchEntryNone را انتخاب کنید.
به شیت لیست اسامی بر میگردیم .
در اولین ستون کمکی (h) ابتدا با استفاده از فرمول
=--ISNUMBER(IFERROR(SEARCH(Sheet4!$A$3;A2;1);""))
در ستون کمکی دوم (i) هم با این استفاده ازفرمول زیر تعداد 1 ها یعنی مورد های نزدیک به جستجو شمارش میشن و یک ها( نام های مورد نظر ) رو رو به نوعی از هم تفکیک میکنیم که در مرحله بعد قابل بازیابی و تشخیص باشند .
=IF(H2=1;COUNTIF($H$2:H2;1);"")
=IFERROR(INDEX($A$2:$A$33;MATCH(ROWS($I$2:I2);$I$2:$I$33;0));"")
=$J$2:INDEX($J$2:$J$33;MAX($I$2:$I$33);1)
[I][COLOR=#0000FF]Private Sub ComboBox1_Change()[/COLOR][/I] [I][COLOR=#0000FF]ComboBox1.ListFillRange = "DropDownList"[/COLOR][/I] [I][COLOR=#0000FF]Me.ComboBox1.DropDown[/COLOR][/I] [I][COLOR=#0000FF]End Sub[/COLOR][/I][LEFT] [/LEFT]
موفق باشید.




کامنت