VBA კოდი Excel-ში მონაცემების გასაფილტრად (8 მაგალითი)

  • გააზიარეთ ეს
Hugh West

Სარჩევი

Excel დახარისხება & ფილტრის ბრძანებას აქვს შეზღუდული დიაპაზონი Filter data . მაგრამ VBA შეგიძლიათ გაფილტროთ მონაცემები ფართო დიაპაზონში, როგორც გსურთ. ეს სტატია შემოგთავაზებთ 8 სასარგებლო მაგალითს, რომ გამოიყენოთ VBA კოდი მონაცემების გაფილტვრისთვის excel-ში VBA კოდების ნათელი ილუსტრაციებით.

ჩამოტვირთეთ სავარჯიშო სამუშაო წიგნი

შეგიძლიათ ჩამოტვირთოთ Excel-ის უფასო შაბლონი აქედან და ივარჯიშოთ დამოუკიდებლად.

VBA კოდი Data.xlsm გასაფილტრად

8 მაგალითი VBA კოდის გამოსაყენებლად Excel-ში მონაცემების გასაფილტრად

მოდით, ჯერ გაეცნოთ ჩვენს მონაცემთა ბაზას, რომელიც წარმოადგენს მოსწავლეთა სქესს, სტატუსს და ასაკი .

1. გამოიყენეთ VBA კოდი მონაცემების გასაფილტრად ტექსტის კრიტერიუმების საფუძველზე Excel-ში

ჩვენს პირველ მაგალითში ჩვენ გამოვიყენებთ VBA ფილტრისთვის მხოლოდ მამაკაცი სტუდენტები მონაცემთა ნაკრების სქესი სვეტიდან.

ნაბიჯები:

  • დააწკაპუნეთ მარჯვენა ღილაკით ფურცლის სათაურზე .
  • შემდეგ აირჩიეთ კოდის ნახვა კონტექსტური მენიუდან .

მალე შემდეგ გაიხსნება VBA ფანჯარა.

  • აკრიფეთ შემდეგი კოდები ში it-
4888
  • მოგვიანებით, შეამცირეთ VBA

Code Breakdown

  • აქ შევქმენი Sub პროცედურა, Filter_Data_Text() .
  • შემდეგ გამოვიყენე Range თვისება ჩვენი შესაბამისი ფურცლის სახელი გამოცხადებისთვის და დიაპაზონი
  • შემდეგ, გამოვიყენე ავტომატური ფილტრის მეთოდი , რომ გამომეყენებინა კრიტერიუმები ჩემი არჩევანით, სადაც Field:=2 ნიშნავს სვეტი 2 . და Criteria1:=”მამაკაცი” რომ გაფილტროთ მამაკაცის მონაცემები.
  • ამის შემდეგ, გახსენით მაკროს დიალოგური ფანჯარა , დააწკაპუნეთ შემდეგნაირად: დეველოპერი > მაკრო.

  • აირჩიეთ მაკროს სახელი როგორც აღნიშნულია კოდებში .
  • და ბოლოს, უბრალოდ დააჭირეთ Run .

ახლა შეხედეთ, რომ გვაქვს მხოლოდ მამაკაცი სტუდენტების მონაცემები ფილტრაციის შემდეგ .

დაწვრილებით: Excel-ის ფილტრის მონაცემები ეფუძნება უჯრედის მნიშვნელობა (6 ეფექტური გზა)

2. გამოიყენეთ VBA კოდი მონაცემთა გაფილტვრისთვის მრავალი კრიტერიუმით ერთ სვეტში

აქ, ჩვენ გაფილტრავთ მრავალ კრიტერიუმს ერთ სვეტში. მონაცემთა ნაკრების მესამე სვეტიდან ჩვენ გავიფილტრავთ კურსდამთავრებულთა და ასპირანტურის სტუდენტებს.

ნაბიჯები:

  • მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს VBA ფანჯრის გასახსნელად .
  • მოგვიანებით, აკრიფეთ შემდეგი კოდები მასში-
6227
  • შემდეგ შეამცირეთ VBA

კოდის დაშლა

  • აქ შევქმენი ქვე პროცედურა, Filter_One_Column() .
  • შემდეგ გამოიყენეთ Range თვისება ჩვენი შესაბამისი ფურცლის სახელი და range
  • შემდეგი, მე გამოვიყენე theAutoFilter მეთოდი გამოვიყენო კრიტერიუმები ჩემი არჩეული სადაც Field:=3 ნიშნავს სვეტა 3 . აქ, კრიტერიუმები1:="კურსდამთავრებული" და კრიტერიუმები2:="ასპირანტურის" გაფილტვრა სტუდენტის სტატუსს .
  • საბოლოოდ, გამოვიყენე Operator:=xlOr , რათა გამომეყენებინა OR პირობა ფილტრი მრავალი კრიტერიუმისთვის.
  • აქ მომენტში, მიჰყევით მესამე საფეხურს პირველი მაგალითიდან მაკროს დიალოგის გასახსნელად ველი .
  • მოგვიანებით, აირჩიეთ მითითებული მაკროს სახელი და დააჭირეთ Run .

მალე თქვენ მიიღებთ გაფილტრულ სტრიქონებს რამდენიმე კრიტერიუმზე დაყრდნობით, როგორიცაა ქვემოთ მოცემული სურათი.

წაიკითხეთ მეტი: გაფილტრეთ მრავალი კრიტერიუმი Excel-ში (4 შესაფერისი გზა)

3. გამოიყენეთ VBA კოდი მონაცემთა გაფილტვრაზე მრავალი კრიტერიუმით სხვადასხვა სვეტში Excel-ში

ახლა ჩვენ გავიფილტრებთ მრავალი კრიტერიუმისთვის - მამაკაცი და დამთავრებული სტუდენტები.

ნაბიჯები:

  • მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს გახსენით VBA
  • მოგვიანებით, ჩაწერეთ შემდეგი კოდები მასში-
7866
  • შემდეგ რომ დაიმციროს VBA ფანჯარა .

კოდის დაშლა

  • აქ შევქმენი Sub პროცედურა, Filter_Different_Columns() .
  • შემდეგ, გამოვიყენე With განცხადება <1-ის გამოსაყენებლად>მრავალი სვეტი .
  • შემდეგ გამოიყენეთ დიაპაზონი თვისება ჩვენი შესაბამისი ფურცლის სახელი და დიაპაზონის გამოცხადებისთვის
  • შემდეგ, გამოვიყენე ავტოფილტრის მეთოდი კრიტერიუმების გამოსაყენებლად ჩემი არჩევანია, სადაც ველი:=2 ნიშნავს სვეტი 2 და ველი:=3 ნიშნავს სვეტი 3 .
  • აქ , აირჩიეთ კრიტერიუმები1:=”მამაკაცი” სქესი სვეტისთვის და კრიტერიუმები1:=”კურსდამთავრებული” სტატუსის სვეტისთვის ფილტრისთვის მონაცემები სხვადასხვა სვეტებიდან .
  • შემდეგ მიჰყევით მესამე ნაბიჯს პირველი მაგალითიდან გასახსნელად მაკროს დიალოგური ფანჯარა .
  • მოგვიანებით აირჩიეთ მითითებული მაკროს სახელი და დააჭირეთ Run .

აქ არის მრავალი კრიტერიუმის გამომავალი.

დაწვრილებით: Excel VBA გაფილტვრა იმავე სვეტში მრავალი კრიტერიუმის მიხედვით (6 მაგალითი)

4. გამოიყენეთ VBA კოდი Excel-ში ტოპ 3 ელემენტის გასაფილტრად

ამ მაგალითში, ჩვენ გავფილტრავთ ტოპ სამ სტუდენტს მათი ასაკის მიხედვით.

ნაბიჯები:

  • მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს VBA ფანჯრის გასახსნელად .
  • შემდეგ აკრიფეთ შემდეგი კოდები მასში-
9068
  • ამის შემდეგ მინიმუმამდე დაიყვანოთ VBA ფანჯარა .

კოდის დაშლა

  • აქ, მე შექმნა Sub პროცედურა, Filter_Top3_Items() .
  • და შემდეგ გამოიყენეთ Operator:=xlTop10Items Filter for სამი საუკეთესო მონაცემები .
  • ახლა მიჰყევით მესამე ნაბიჯს პირველი მაგალითიდან გასახსნელად მაკროს დიალოგური ყუთი .
  • შემდეგ აირჩიეთ მაკროს სახელი როგორც აღნიშნულია კოდებში და დააჭირეთ Run .

შემდეგ თქვენ მიიღებთ გამოსავალს, როგორც ქვემოთ მოცემული სურათი -

დაწვრილებით: როგორ გავფილტროთ უჯრედის ღირებულებაზე დაყრდნობით Excel VBA (4 მეთოდი) გამოყენებით

მსგავსი წაკითხვები

  • როგორ დავაკოპიროთ და ჩასვათ როდის ფილტრი გამოიყენება Excel-ში
  • როგორ გავფილტროთ უნიკალური მნიშვნელობები Excel-ში (8 მარტივი გზა)
  • გაფილტრეთ მრავალი კრიტერიუმი Excel-ში VBA-ით (ორივე AND და OR ტიპები)
  • როგორ გამოვიყენოთ ტექსტის ფილტრი Excel-ში (5 მაგალითი)
  • როგორ გავფილტროთ თარიღის მიხედვით Excel-ში (4 სწრაფი მეთოდები)

5. გამოიყენეთ VBA კოდი Excel-ში ტოპ 50 პროცენტის გასაფილტრად

მოდით გამოვიყენოთ VBA კოდები სტუდენტების ტოპ ორმოცდაათი პროცენტის გასაფილტრად მათი ასაკის მიხედვით .

ნაბიჯები:

  • პირველ რიგში, მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს VBA ფანჯრის გასახსნელად .
  • მოგვიანებით, აკრიფეთ შემდეგი კოდები მასში-
8928
  • შეამცირეთ VBA ფანჯარა .

კოდის დაშლა

  • აქ, მე შევქმენი Sub პროცედურა, Filter_Top50_Percent() .
  • მოგვიანებით გამოვიყენე Operator:=xlTop10Percent <1-მდე>გაფილტრეთ ზედა ორმოცდაათი პროცენტი სვეტი-4 .
  • ამ მომენტში, მიჰყევით მესამე ნაბიჯს პირველი მაგალითიდან , რომ გახსნათ მაკროს დიალოგური ფანჯარა.
  • შემდეგ აირჩიეთ მითითებული მაკროს სახელი და დააჭირეთ Run .

სულ იყო 7 სტუდენტი ასე რომ 50 პროცენტისთვის , ეს აჩვენებს დაახლოებით სამ სტუდენტს .

დაწვრილებით: როგორ გამოვიყენოთ მოგების პროცენტული ფორმულა Excel-ში (3 მაგალითი)

6 . გამოიყენეთ VBA კოდი მონაცემთა გაფილტვრაზე Wildcard-ის გამოყენებით

ჩვენ შეგვიძლია გამოვიყენოთ Wildcard სიმბოლოები-* (ვარსკვლავი) VBA კოდები Excel-ში მონაცემების გასაფილტრად. სტატუსის სვეტიდან ჩვენ გავფილტრავთ მხოლოდ მნიშვნელობებს, რომლებიც შეიცავს „პოსტს“ .

ნაბიჯები:

  • მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს VBA ფანჯრის გასახსნელად .
  • შემდეგ დაწერეთ შემდეგი კოდები მასში-
6901
  • მოგვიანებით შეამცირეთ VBA ფანჯარა .

კოდის დაშლა

  • აქ მე შევქმენი ქვე პროცედურა, ფილტრი_with_Wildcard() .
  • შემდეგ გამოიყენება დიაპაზონი („B4“) დიაპაზონის დასაყენებლად.
  • შემდეგი , გამოყენებულია AutoFilter to Filter in Field:=3 ნიშნავს სვეტი 3.
  • Criteria1:=”*გამოქვეყნება *” რომ გაფილტროთ მნიშვნელობები, რომლებიც შეიცავს „პოსტს“.
  • ახლა მიჰყევით მესამე ნაბიჯს პირველიდან მაგალითი მაკროების დიალოგის გასახსნელადველი.
  • აირჩიეთ მითითებული მაკროს სახელი და აჭირეთ Run .

შემდეგ მიიღებთ სასურველ გამომავალს.

წაიკითხეთ მეტი: როგორ დავამატოთ ფილტრი Excel-ში (4 მეთოდი )

7. ჩადეთ Excel VBA, რათა დააკოპიროთ გაფილტრული მონაცემები ახალ ფურცელში Excel-ში

იხილეთ, რომ ჩემს მონაცემთა ბაზაში არის გარკვეული გაფილტრული მონაცემები. ახლა მე დავაკოპირებ მათ ახალ ფურცელში VBA -ის გამოყენებით. ეს კოდები არ იმუშავებს სწორად ფურცელში, თქვენ მოგიწევთ მათი გამოყენება მოდულში.

ნაბიჯები:

  • დააჭირეთ Alt+F11 გასახსნელად VBA

  • შემდეგ დააჭირეთ ჩასმა > მოდული მოდულის გასახსნელად .

  • ახლა დაწერეთ შემდეგი კოდები
7451
  • შემდეგ შეამცირეთ VBA

კოდის დაშლა

  • აქ შევქმენი ქვე პროცედურა, Copy_Filtered_Data_NewSheet() .
  • ამის შემდეგ გამოცხადდა ორ ცვლადად - x Rng როგორც დიაპაზონი და xWS როგორც სამუშაო ფურცელი.
  • შემდეგ გამოიყენეთ IF განცხადება მონიშნეთ გაფილტრული
  • მოგვიანებით გამოიყენეს MsgBox გამოსავლის საჩვენებლად.
  • შემდეგ გამოიყენეთ Worksheets(“Copy Filtered Data”). AutoFilter .Range აირჩიეთ გაფილტრული დიაპაზონი და გამოიყენეთ Add ახალი ფურცლის დასამატებლად.
  • ბოლოს, Copy Range(“G4”) დააკოპირებს გაფილტრული მონაცემებს ახალ ფურცელზე .
  • მოგვიანებით მიჰყევითმესამე ნაბიჯი პირველი მაგალითიდან მაკროს დიალოგური ფანჯრის გასახსნელად .
  • შემდეგ აირჩიეთ მითითებული მაკროს სახელი და დააჭირეთ Run .

ახლა ნახეთ, რომ Excel-მა გახსნა ახალი ფურცელი და დააკოპირა გაფილტრული რიგები.

დაწვრილებით: Shortcut Excel ფილტრისთვის (3 სწრაფი გამოყენება მაგალითებით)

8. გამოიყენეთ VBA კოდი მონაცემების გასაფილტრად ჩამოსაშლელი სიის გამოყენებით

ჩვენს ბოლო მაგალითში, ჩვენ ჯერ შევქმნით ჩამოსაშლელ სიას სქესებისთვის, შემდეგ კი მას გამოვიყენებთ მონაცემების გასაფილტრად. ამისთვის მე განვათავსე სქესის კრიტერიუმები სხვა ადგილას და შევქმნით ჩამოსაშლელ სიას Cell D14 .

ნაბიჯები:

  • აირჩიეთ უჯრედი D14 .
  • შემდეგ დააწკაპუნეთ შემდეგნაირად: მონაცემები > მონაცემთა ინსტრუმენტები > მონაცემთა დადასტურება > მონაცემთა დადასტურება.

მალევე გაიხსნება დიალოგური ფანჯარა .

აირჩიეთ სია ჩამოსაშლელიდან დაშვება .

შემდეგ დააწკაპუნეთ ღია ხატულაზე წყაროს ველიდან .

ახლა აირჩიეთ კრიტერიუმების დიაპაზონი და დააჭირეთ Enter ღილაკს .

  • ამ მომენტში, უბრალოდ დააჭირეთ OK .

ახლა ჩვენი ჩასაშლელი სია მზად არის.

  • ახლა მიჰყევით პირველი მაგალითის პირველ ორ ნაბიჯს VBA ფანჯრის გასახსნელად .
  • შემდეგ ჩაწერეთ შემდეგი კოდები მასში-
7074
  • შემდეგ დაამცირეთ VBAფანჯარა .

კოდის დაშლა

  • აქ შევქმენი Private Sub პროცედურა, Worksheet_Change (ByVal Target As Range).
  • შემდეგ, მე ავირჩიე სამუშაო ფურცელი ზოგადი და შეცვლა დეკლარაციები .
  • შემდეგ დააყენეთ Address მდებარეობის გასაგებად.
  • საბოლოოდ IF განცხადებაში გამოიყენეთ AutoFilter მეთოდი ველით და კრიტერიუმები
  • ახლა უბრალოდ აირჩიეთ კრიტერიუმები ჩამოსაშლელი სიიდან და ფილტრი გააქტიურდება .

აქ არის გაფილტრული გამომავალი მამაკაცი შერჩევის შემდეგ ჩამოშლილი .

დაწვრილებით: როგორ გავფილტროთ სიის მიხედვით სხვა ფურცელში Excel-ში (2 მეთოდი)

პრაქტიკის განყოფილება

თქვენ მიიღებთ სავარჯიშო ფურცელს ზემოთ მოცემულ Excel ფაილში, რათა ივარჯიშოთ ახსნილი გზებით.

დასკვნა

იმედი მაქვს, ზემოთ აღწერილი პროცედურები საკმარისად კარგი იქნება VBA კოდის გაფილტვრისთვის მონაცემების ექსელში გამოსაყენებლად. მოგერიდებათ დასვით ნებისმიერი შეკითხვა კომენტარების განყოფილებაში და გთხოვთ გამომიხმაუროთ.

ჰიუ ვესტი არის Excel-ის ძალიან გამოცდილი ტრენერი და ანალიტიკოსი, რომელსაც აქვს 10 წელზე მეტი გამოცდილება ინდუსტრიაში. მას აქვს ბაკალავრის ხარისხი ბუღალტერიასა და ფინანსებში და მაგისტრის ხარისხი ბიზნესის ადმინისტრირებაში. ჰიუს აქვს სწავლების გატაცება და შეიმუშავა სწავლების უნიკალური მიდგომა, რომელიც ადვილად გასაგები და გასაგებია. მისი ექსპერტი Excel-ის ცოდნა დაეხმარა ათასობით სტუდენტს და პროფესიონალს მთელს მსოფლიოში, გაეუმჯობესებინათ თავიანთი უნარები და გამოირჩეოდნენ თავიანთ კარიერაში. თავისი ბლოგის საშუალებით, ჰიუ უზიარებს თავის ცოდნას მსოფლიოს, სთავაზობს უფასო Excel გაკვეთილებს და ონლაინ ტრენინგებს, რათა დაეხმაროს ინდივიდებსა და ბიზნესს თავიანთი პოტენციალის სრულად მიღწევაში.