کد VBA برای فیلتر کردن داده ها در اکسل (8 مثال)

  • این را به اشتراک بگذارید
Hugh West

اکسل مرتب سازی & فرمان فیلتر محدوده محدودی به فیلتر داده دارد. اما با استفاده از VBA می توانید داده ها را در محدوده وسیعی به دلخواه فیلتر کنید . این مقاله 8 مثال مفید برای استفاده از کد VBA برای فیلتر کردن داده ها در اکسل با استفاده از کدهای VBA با تصاویر واضح ارائه می دهد.

کتاب تمرین تمرین را دانلود کنید

می توانید قالب رایگان اکسل را از اینجا دانلود کنید و خودتان تمرین کنید.

کد VBA برای فیلتر Data.xlsm

8 مثال برای استفاده از کد VBA برای فیلتر کردن داده ها در اکسل

اجازه دهید ابتدا با مجموعه داده خود آشنا شویم که نشان دهنده برخی جنسیت، وضعیت و وضعیت دانش آموزان است. سن .

1. از کد VBA برای فیلتر کردن داده ها بر اساس معیارهای متن در اکسل استفاده کنید

در اولین مثال ما، ما از VBA به Filter فقط <1 استفاده می کنیم> دانش‌آموزان مرد از ستون جنس مجموعه داده.

مراحل:

  • راست کلیک کنید در عنوان برگ .
  • سپس نمایش کد را از منوی زمینه انتخاب کنید.

به زودی پس از آن، پنجره VBA باز می شود. it-

8771
  • بعد، VBA

را کوچک کنید تجزیه کد

  • در اینجا، من یک روش Sub ، Filter_Data_Text() ایجاد کردم.
  • سپس از ویژگی Range برای اعلام نام برگ مربوطه ما و محدوده
  • بعد، من از روش AutoFilter برای استفاده از معیار انتخابی خود استفاده کردم که در آن Field:=2 به معنی ستون 2 . و Criteria1:="Male" برای فیلتر داده های Male.
  • پس از آن، به <1 باز کردن کادر محاوره ای ماکروها ، روی به صورت زیر کلیک کنید: Developer > ماکروها.

  • نام ماکرو را همانطور که در کدها ذکر شده انتخاب کنید .
  • در نهایت، فقط Run را فشار دهید .

اکنون ببینید که ما فقط داده های دانش آموزان پسر پس از فیلتر .

بیشتر بخوانید: داده های فیلتر اکسل بر اساس مقدار سلول (6 روش کارآمد)

2. کد VBA را برای فیلتر کردن داده ها با معیارهای چندگانه در یک ستون اعمال کنید

در اینجا، ما برای چندین معیار در یک ستون فیلتر می کنیم. از ستون شماره سه مجموعه داده، فیلتر را برای دانشجویان فارغ التحصیل و فارغ التحصیل

مراحل:

  • دو مرحله اول از نمونه اول را برای باز کردن پنجره VBA دنبال کنید.
  • بعد، کدهای زیر را تایپ کنید در آن-
4500
  • سپس VBA
<0 را کوچک کنید>

تجزیه کد

  • در اینجا، من یک روش Sub ، ایجاد کردم Filter_One_Column() .
  • سپس از ویژگی Range برای اعلام نام برگ و محدوده
  • استفاده کرد. بعد، من از the استفاده کردمروش فیلتر خودکار برای استفاده از معیار انتخابی من که در آن Field:=3 به معنای ستون 3 است. در اینجا، معیارهای 1:="فارغ التحصیل" و معیارهای2:="فوق لیسانس" برای فیلتر وضعیت دانشجو.
  • در نهایت، من از Operator:=xlOr برای اعمال OR شرط Filter برای چندین معیار استفاده کردم.
  • در اینجا لحظه، مرحله سوم را از مثال اول دنبال کنید تا گفتگوی ماکروها جعبه باز شود.
  • بعداً، نام ماکرو مشخص شده را انتخاب کنید و Run را فشار دهید.

بلافاصله پس از آن، ردیف های فیلتر شده را بر اساس چندین معیار مانند تصویر زیر دریافت خواهید کرد.

بیشتر بخوانید: فیلتر کردن معیارهای چندگانه در اکسل (4 راه مناسب)

3. کد VBA را برای فیلتر کردن داده ها با معیارهای چندگانه در ستون های مختلف در اکسل اعمال کنید

اکنون ما فیلتر برای چندین معیار- مرد و فارغ التحصیل دانش آموزان.

مراحل:

  • دو مرحله اول از مثال اول را دنبال کنید تا VBA
  • را باز کنید، کدهای زیر را در آن بنویسید-
7908
  • بعد که پنجره VBA را به حداقل برساند .

تجزیه کد

  • در اینجا، من یک روش Sub ، Filter_Different_Columns() ایجاد کردم.
  • سپس، از عبارت With برای استفاده از <1 استفاده کردم>Multiple Column .
  • سپس از Range استفاده کردویژگی برای اعلام نام برگه و محدوده
  • بعد، از روش AutoFilter برای استفاده از معیار استفاده کردم انتخاب من جایی است که Field:=2 به معنای ستون 2 و Field:=3 به معنای ستون 3 است.
  • در اینجا ، معیارهای1:="مرد" را برای ستون جنس و معیارهای1:="فارغ التحصیل" را برای ستون وضعیت در فیلتر انتخاب کرد. داده ها از ستون های مختلف .
  • سپس مرحله سوم را دنبال کنید از نمونه اول برای باز کردن کادر محاوره ای ماکروها .
  • بعداً، نام ماکرو مشخص شده را انتخاب کنید و Run را فشار دهید.

در اینجا خروجی چندین معیار است.

بیشتر بخوانید: Excel VBA برای فیلتر کردن در همان ستون بر اساس معیارهای چندگانه (6 مثال)

4. از کد VBA برای فیلتر کردن 3 مورد برتر در اکسل استفاده کنید

در این مثال، سه دانش آموز برتر را با توجه به سن آنها فیلتر می کنیم.

مراحل:

  • دو مرحله اول از مثال اول را دنبال کنید تا پنجره VBA باز شود .
  • سپس تایپ کدهای زیر در آن-
1796
  • پس از آن را کوچک کنید پنجره VBA .

تجزیه کد

  • اینجا، I یک روش Sub ، Filter_Top3_Items() ایجاد کرد.
  • و سپس از Operator:=xlTop10Items to Filter برای<استفاده کرد 1> سه نفر برتر داده .
  • اکنون مرحله سوم را از نمونه اول دنبال کنید تا را باز کنید گفتگوی ماکروها جعبه .
  • سپس نام ماکرو را همانطور که در کدها ذکر شده انتخاب کنید و Run را فشار دهید.

سپس خروجی را مانند تصویر زیر دریافت خواهید کرد-

بیشتر بخوانید: نحوه فیلتر کردن بر اساس مقدار سلول با استفاده از Excel VBA (4 روش)

خواندنی مشابه

  • چگونه در هنگام کپی و جایگذاری فیلتر در اکسل اعمال می شود
  • نحوه فیلتر کردن مقادیر منحصر به فرد در اکسل (8 روش آسان)
  • فیلتر کردن چندین معیار در اکسل با VBA (هر دو انواع AND و OR)
  • نحوه استفاده از فیلتر متن در اکسل (5 مثال)
  • نحوه فیلتر کردن بر اساس تاریخ در اکسل (4 سریع روش ها)

5. از کد VBA برای فیلتر کردن 50 درصد برتر در اکسل استفاده کنید

بیایید از کدهای VBA برای فیلتر کردن پنجاه درصد برتر دانش آموزان بر اساس سن آنها استفاده کنیم. .

مراحل:

  • ابتدا، دو مرحله اول از مثال اول را دنبال کنید برای باز کردن پنجره VBA .
  • بعد، کدهای زیر را تایپ کنید -
9643
  • پنجره VBA را به حداقل برسانید.

تجزیه کد

  • در اینجا، من یک روش Sub ، Filter_Top50_Percent() ایجاد کردم.
  • بعد از Operator:=xlTop10Percent به <1 استفاده شد>پنجاه درصد بالای را فیلتر کنید ستون-4 .
  • در این لحظه، مرحله سوم را دنبال کنید از مثال اول برای باز کردن کادر محاوره ای ماکروها.
  • سپس نام ماکرو مشخص شده را انتخاب کنید و Run را فشار دهید.

در مجموع 7 دانش آموز وجود داشت، بنابراین برای 50 درصد ، تقریبا سه دانش آموز را نشان می دهد.

بیشتر بخوانید: نحوه استفاده از فرمول درصد سود در اکسل (3 مثال)

6 . اعمال کد VBA برای فیلتر کردن داده ها با استفاده از Wildcard

ما می توانیم از کاراکترهای Wildcard-* (ستاره) در کدهای VBA برای فیلتر کردن داده ها در Excel استفاده کنیم. از ستون وضعیت ، فقط مقادیر حاوی "پست" را فیلتر می کنیم.

مراحل:

  • دو مرحله اول نمونه اول را دنبال کنید تا پنجره VBA باز شود.
  • سپس بنویسید کدهای زیر در آن-
6184
  • بعد، پنجره VBA را کوچک کنید.

تجزیه کد

  • در اینجا، من یک روش Sub ، Filter_with_Wildcard()<ایجاد کردم 18>.
  • سپس از محدوده ("B4") برای تنظیم محدوده استفاده شد.
  • بعدی ، استفاده شد AutoFilter to Filter in Field:=3 به معنی ستون 3.
  • Criteria1:=”*پست *" برای فیلتر مقادیری که حاوی "پست" هستند.
  • اکنون مرحله سوم را دنبال کنید از ابتدا مثال برای باز کردن گفتگوی ماکروهاکادر.
  • نام ماکرو مشخص شده را انتخاب کنید و Run را فشار دهید.

سپس خروجی مورد نظر را دریافت خواهید کرد.

بیشتر بخوانید: نحوه افزودن فیلتر در اکسل (4 روش) )

7. Excel VBA را برای کپی کردن داده های فیلتر شده در یک برگه جدید در Excel جاسازی کنید

ببینید که برخی از داده های فیلتر شده در مجموعه داده من وجود دارد. اکنون آنها را با استفاده از VBA در یک صفحه جدید کپی می کنم. این کدها به درستی در برگه کار نمی کنند، باید آنها را در ماژول اعمال کنید.

مراحل:

  • Alt+F11 را فشار دهید تا VBA

  • باز شود سپس Insert > ماژول برای باز کردن یک ماژول .

  • اکنون کدهای زیر را بنویسید
3315
  • سپس VBA

<0 را کوچک کنید> Code Breakdown
  • در اینجا، من یک روش Sub ، Copy_Filtered_Data_NewSheet() ایجاد کردم.
  • بعد از آن دو متغیره - x Rng به عنوان محدوده و xWS به عنوان کاربرگ اعلام شد.
  • سپس از یک عبارت IF استفاده شد Filtered
  • بعدها، از MsgBox برای نمایش خروجی استفاده کرد.
  • سپس از Worksheets ("Copy Filtered Data") استفاده کرد. AutoFilter .Range برای انتخاب محدوده Filtered و استفاده از Add برای افزودن یک صفحه جدید.
  • در نهایت، Copy Range("G4") داده های Filtered را در صفحه جدید کپی می کند.
  • بعداً، را دنبال کنیدمرحله سوم از نمونه اول برای باز کردن کادر محاوره ای ماکروها .
  • سپس نام ماکرو مشخص شده را انتخاب کنید. 2> و Run را فشار دهید .

اکنون ببینید اکسل یک برگه جدید باز کرده و ردیف های فیلتر شده را کپی کرده است.

بیشتر بخوانید: میانبر برای فیلتر اکسل (3 کاربرد سریع با مثال)

8. کد VBA را برای فیلتر کردن داده‌ها با استفاده از فهرست کشویی اعمال کنید

در مثال آخر، ابتدا یک لیست کشویی برای جنسیت‌ها ایجاد می‌کنیم سپس از آن برای فیلتر کردن داده‌ها استفاده می‌کنیم. برای آن، معیارهای جنسیت را در مکان دیگری قرار داده ام و یک لیست کشویی در Cell D14 ایجاد می کنیم.

مراحل:

  • Cell D14 را انتخاب کنید.
  • سپس روی به صورت زیر کلیک کنید: Data > ابزارهای داده > اعتبارسنجی داده > اعتبارسنجی داده ها.

به زودی، یک جعبه گفتگو باز می شود.

انتخاب کنید فهرست از منوی کشویی اجازه .

سپس روی نماد باز کردن از کادر منبع کلیک کنید.

اکنون محدوده معیار را انتخاب کنید و دکمه Enter را فشار دهید .

  • در این لحظه، فقط OK را فشار دهید .

اکنون فهرست کشویی ما آماده است.

  • اکنون دو مرحله اول از نمونه اول را برای باز کردن پنجره VBA دنبال کنید .
  • سپس بنویسید کدهای زیر در آن-
1744
  • سپس VBA را به حداقل برسانیدپنجره .

تجزیه کد

  • اینجا، من ایجاد کردم یک روش Private Sub ، Worksheet_Change (ByVal Target As Range).
  • سپس، کاربرگ از عمومی و تغییر از اعلامیه را انتخاب کردم.
  • سپس آدرس را تنظیم کنید تا مکان را بدانید.
  • در نهایت در عبارت IF از روش AutoFilter با Field <2 استفاده کرد>و معیارها
  • اکنون فقط معیارها را از لیست کشویی انتخاب کنید و فیلتر فعال خواهد شد .

در اینجا خروجی Filtered پس از انتخاب Male از کشویی است.

بیشتر بخوانید: نحوه فیلتر کردن بر اساس لیست در برگه دیگری در اکسل (2 روش)

بخش تمرین

شما یک برگه تمرینی در فایل اکسل ارائه شده در بالا برای تمرین روش های توضیح داده شده دریافت خواهید کرد.

نتیجه گیری

امیدوارم رویه هایی که در بالا توضیح داده شد برای استفاده از کد VBA برای فیلتر داده ها در اکسل به اندازه کافی خوب باشند. هر گونه سوالی را در بخش نظرات بپرسید و لطفاً بازخورد خود را به من بدهید.

هیو وست یک مربی و تحلیلگر اکسل بسیار با تجربه با بیش از 10 سال تجربه در این صنعت است. وی دارای مدرک لیسانس در رشته حسابداری و امور مالی و مدرک کارشناسی ارشد در رشته مدیریت بازرگانی است. هیو علاقه زیادی به تدریس دارد و یک رویکرد آموزشی منحصر به فرد ایجاد کرده است که به راحتی قابل پیگیری و درک است. دانش تخصصی او از اکسل به هزاران دانش آموز و متخصص در سراسر جهان کمک کرده تا مهارت های خود را بهبود بخشند و در حرفه خود برتری پیدا کنند. هیو از طریق وبلاگ خود دانش خود را با جهان به اشتراک می گذارد و آموزش های رایگان اکسل و آموزش آنلاین ارائه می دهد تا به افراد و مشاغل کمک کند تا به پتانسیل کامل خود دست یابند.