FIND ფუნქცია VBA-ში: როგორ გამოვიყენოთ იგი?

მინდა ვისწავლოთ როგორ გამოიყენოთ FIND ფუნქცია VBA-ში🇧🇷 მაშინ თქვენ სწორ ადგილას ხართ!

ვინ არ იცის SEARCH ვარიანტი Excel-ში? თუ დიდი ხანია მუშაობთ Excel-თან, ალბათ იყენებდით SEARCH ფუნქციას ან პოპულარულ Ctrl + L მალსახმობის კლავიშს, რათა იპოვოთ სიტყვა ან შინაარსის ნაწილი, რომლის მოძიებაც გსურთ მთელ სამუშაო ფურცელში. როგორც მთელი სამუშაო წიგნი.

ასევე, VBA-ში გვაქვს ფუნქცია სახელწოდებით FIND, რომელიც დაგვეხმარება იმ მნიშვნელობის პოვნაში, რომელსაც ვეძებთ.

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

როგორ მუშაობს FIND ფუნქცია VBA-ში?

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

მაგალითად, შემდეგი კოდი ეძებს ტექსტს "სან პაბლო» ინტერვალში A1: A10 inსამუშაო ფურცელი 1🇧🇷

Sheets-ით ("Sheet1"). დიაპაზონი ("A1:A10")
დააყენეთ Rng = .Find(What:="São Paulo")

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

VBA FIND ფუნქციის სინტაქსი

VBA FIND ფუნქციის სინტაქსი გამოცხადებულია შემდეგნაირად:

express.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Donde:

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

  • Qué: ეს არის ღირებულება, რომელიც უნდა ვეძებოთ. ეს შეიძლება იყოს რიცხვითი, ტექსტური ან ნებისმიერი სხვა Excel მონაცემთა ტიპი. ეს არგუმენტი იგივეა, რაც Find ვარიანტის "იპოვე და ჩაანაცვლე” Excel-დან.
  • შემდეგ: მიუთითებს უჯრედს, საიდანაც დაიწყება ძებნა. იგი შეყვანილია როგორც ერთი უჯრედის მითითება. თუ ეს არგუმენტი გამოტოვებულია, ძიება იწყება მითითებული საძიებო დიაპაზონის ზედა მარცხენა კუთხეში არსებული უჯრედის შემდეგ.
  • Ჩაიხედე: ეს არის ადგილი (ან მონაცემები), სადაც უნდა მოიძებნოს მნიშვნელობა. ეს შეიძლება იყოს კომენტარი (xlComments), ფორმულა (xlFormulas) ან მნიშვნელობა (xlValues). ნაგულისხმევი მნიშვნელობა ამ არგუმენტისთვის არის xlFormulas. ასევე, ეს არგუმენტი იგივეა, რაც Find ვარიანტის "იპოვე და ჩაანაცვლე” Excel-დან.
  • შეხედე: ეს არგუმენტი წყვეტს შეესაბამება თუ არა უჯრედის მთლიან შინაარსს (ზუსტი დამთხვევა) თუ უჯრედის შინაარსის ნაწილს (ნაწილობრივი დამთხვევა). მუდმივებია xlWhole და xlPart ზუსტი და ნაწილობრივი შესატყვისებისთვის, შესაბამისად. ნაგულისხმევი მნიშვნელობა ამ არგუმენტისთვის არის xlPart.
  • ძებნის თანმიმდევრობა: ეს არგუმენტი მიუთითებს ძიების ბრძანებაზე. თქვენ შეგიძლიათ მიუთითოთ, იქნება თუ არა ძიება რიგებში (xlByRows) თუ სვეტებში (xlByColumns). ნაგულისხმევი მნიშვნელობა ამ არგუმენტისთვის არის xlByRows. ასევე, ეს არგუმენტი იგივეა, რაც Find ვარიანტის "იპოვე და ჩაანაცვლე” Excel-დან.
  • ძებნის მისამართი: მიუთითებს მისამართს, რომელშიც განხორციელდება ძებნა. შეგიძლიათ მოძებნოთ ქვემოთ ან შემდეგ უჯრედში xlNext მუდმივით. ალტერნატიულად, შეგიძლიათ მოძებნოთ უკან (ზემოთ) ან წინა უჯრედში xlPrevious მუდმივით. ნაგულისხმევი მნიშვნელობა ამ არგუმენტისთვის არის xlNext.
  • მატჩის შემთხვევა: ეს არგუმენტი წყვეტს, უნდა იყოს თუ არა ძიება რეგისტრირებული ასოებით. თუ ძიება რეგისტრირებულია, ეს არგუმენტი მითითებულია როგორც true (TRUE), წინააღმდეგ შემთხვევაში ის მცდარია (FALSE). ნაგულისხმევი მნიშვნელობა ამ არგუმენტისთვის არის False.
  • MatchByte: ეს არგუმენტი უნდა იქნას გამოყენებული, თუ ვინმემ დააინსტალირა ან შეარჩია ორმაგი ბაიტი ენის მხარდაჭერა. უნდა იყოს მითითებული, როგორც true, თუ ორმაგი ბაიტი სიმბოლოები უნდა ემთხვეოდეს ორბაიტიან სიმბოლოებს. უნდა იყოს მითითებული, როგორც false, თუ ორმაგი ბაიტი სიმბოლოები უნდა შეესაბამებოდეს მათ ერთბაიტიან ეკვივალენტებს.
  • საძიებო ფორმატი: მიუთითებს, უნდა იყოს თუ არა საძიებელი მნიშვნელობა კონკრეტულ ფორმატში (როგორიცაა თამამი ან დახრილი) თუ არა. თუ საძიებო მნიშვნელობა უნდა შეესაბამებოდეს ფორმატირების ტექნიკას, ეს არგუმენტი მითითებულია როგორც true, წინააღმდეგ შემთხვევაში false. ამ არგუმენტის ნაგულისხმევი მნიშვნელობა არის false (FALSE).

უბრალოდ არგუმენტი რა საჭირო. სხვა არგუმენტები არჩევითია.

FIND ფუნქცია აბრუნებს ერთ-ერთ შემდეგ შედეგს:

  • თუ დამთხვევა მოიძებნება, ფუნქცია აბრუნებს პირველ უჯრედს, სადაც არის ნაპოვნი მნიშვნელობა.
  • თუ შესატყვისი არ არის ნაპოვნი, ფუნქცია არაფერს აბრუნებს. ეს იმიტომ ხდება, რომ ფუნქციის ობიექტი დაყენებულია არაფერს.

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

შენიშვნა: ძიება იწყება არგუმენტში მითითებული უჯრედის შემდეგ. შემდეგ და აგრძელებს საძიებო დიაპაზონის ბოლო უჯრედამდე. თუ მნიშვნელობა ვერ მოიძებნა ამ ბოლო უჯრედამდე, ძიება კვლავ იწყება საძიებო დიაპაზონის პირველი უჯრედიდან არგუმენტში მითითებულ უჯრედამდე. შემდეგ🇧🇷

ამიტომ, არგუმენტში მითითებული უჯრედი შემდეგ ის იძებნება ძიების პროცესის ბოლოს. დამატებითი დეტალებისთვის არგუმენტის გამოყენების შესახებ შემდეგიხილეთ მეორე მაგალითი ამ სტატიაში.

შენიშვნა: ყოველთვის, როცა VBA FIND ფუნქცია გამოიყენება, ჩაიხედე🇧🇷 Შეხედე🇧🇷 ძებნის ბრძანება y MatchByte შენახულია. ამიტომ, თუ ეს მნიშვნელობები გამოტოვებულია ფუნქციის შემდეგ გამოყენებისას, Excel გამოიყენებს ადრე შენახულ მნიშვნელობებს. ამიტომ, რეკომენდებულია მოწოდებული არგუმენტების ცალსახად გამოცხადება, როდესაც ძიება ხორციელდება VBA FIND ფუნქციის გამოყენებით.

როგორ გამოვიყენოთ FIND ფუნქცია Excel VBA-ში?

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

მაგალითი 1: საძიებო მნიშვნელობის პირველი ადგილის მქონე უჯრედის არჩევა

ამ პირველ მაგალითში, დავუშვათ, რომ თქვენ გაქვთ სია, რომელიც შეიცავს რამდენიმე სახელს, როგორც ნაჩვენებია ქვემოთ მოცემულ სურათზე, და გსურთ დაათვალიეროთ და აირჩიოთ უჯრედი, რომელიც შეიცავს სახელს. პედრო🇧🇷

იქიდან, მიჰყევით ამ ნაბიჯებს:

1. წვდომა სახელმძღვანელოზე შემქმნელი 🇧🇷 ვიზუალური ძირითადი🇧🇷 (თუ არ გაქვთ ჩართული დეველოპერის ჩანართი თქვენს Excel-ში, შეამოწმეთ აქ ნაბიჯ - ნაბიჯ).

შემქმნელის სახელმძღვანელო

ორი VBA ეკრანზე აირჩიეთ სასურველი სამუშაო ფურცელი მარცხენა მენიუდან. ამ მაგალითში ჩვენ ვირჩევთ სამუშაო ფურცელი 1 რომელიც არის სამუშაო ფურცელი, რომელიც შეიცავს სახელების სიას.

3. სასურველი სამუშაო ფურცლის არჩევის შემდეგ, მარჯვნივ მდებარე ზონაში შეიყვანეთ ქვემოთ მოცემული კოდი:

აირჩიეთ უჯრედი მოძიებული მნიშვნელობის პირველი შემთხვევით

Sub LocateName()
დიაპაზონი ("A1:A10"). Find (What:="Peter"). აირჩიეთ
ბოლო Sub
  • ზემოთ მოცემულ კოდში გაითვალისწინეთ, რომ ჩვენ აღვნიშნეთ დიაპაზონი, რომელსაც ვეძებთ (A1: A10🇧🇷
  • დიაპაზონის ხსენების შემდეგ მოათავსეთ წერტილი (.) და ჩაწერეთ იპოვნე🇧🇷
  • ჩვენი პირველი არგუმენტი არის ის, რასაც ჩვენ ვეძებთ. არგუმენტის ხაზგასასმელად, შეგვიძლია არგუმენტის გავლა რა:=ეს სასარგებლო იქნება იმის დასადგენად, თუ რომელ პარამეტრს ვგულისხმობთ.
  • ბოლო ნაწილი არის სიტყვის პოვნის შემდეგ, რისი გაკეთებაც გვინდა. ჩვენ უნდა ავირჩიოთ სიტყვა, ამიტომ არგუმენტი გადავიტანოთ როგორც აირჩიეთ🇧🇷
  • შემდეგ გაუშვით ეს კოდი გასაღების გამოყენებით F5 ან ხელით, როგორც ნაჩვენებია ქვემოთ მოცემულ სურათზე, რათა აირჩიოთ სახელის შემცველი პირველი უჯრედი პედრო🇧🇷

იპოვნეთ VBA-ში

მაგალითი 2: აირჩიეთ უჯრედი ძიების მნიშვნელობის მეორე შემთხვევით

ამ მეორე მაგალითში, გაითვალისწინეთ, რომ შემდეგი სურათი შეიცავს რამდენიმე სახელს A1:A10 დიაპაზონში. გაითვალისწინეთ, რომ სახელი "პედრო” ორჯერ ჩნდება A სვეტში.

აირჩიეთ უჯრედი მეორე გამოვლინებით

ამ შემთხვევაში, ჩვენ გვინდა მოვძებნოთ და შევარჩიოთ მეორე შემთხვევა სახელი "პეტრე" სვეტში A (ანუ უჯრედი A7). ამისათვის ჩვენ გამოვიყენებთ შემდეგ კოდს:

იპოვეთ VBA მეორე შემთხვევა

Sub LocateName()
დიაპაზონი ("A1:A10"). Find(What:="Peter", After:=Range("A2")). აირჩიეთ
ბოლო Sub

ზემოთ მოცემულ კოდში გაითვალისწინეთ, რომ ძიება იწყება A2 უჯრედის შემდეგ და გრძელდება A სვეტის ბოლო უჯრედამდე. ეს იმიტომ ხდება, რომ ძიების დიაპაზონი მითითებული იყო, როგორც A სვეტი (A1:A10).

ასე რომ, რადგან ძებნა იწყება A3 უჯრედში, მნიშვნელობა "პედრო" არის საკანში A7 აძლევს"ელცხრილი2🇧🇷 ამიტომ კოდის შესრულებისას უჯრედი A7 შეირჩევა FIND ფუნქციით.

თუ სახელი «პედრო” არ იყო ნაპოვნი A3 უჯრედში A სვეტის ბოლო უჯრედამდე, ძიება კვლავ დაიწყება A1 უჯრედიდან და ამჯერად A2 უჯრედში დასრულდება. ამიტომ, არგუმენტში მითითებული უჯრედი "შემდეგ” იძებნება ძიების პროცესის ბოლოს.

მაგალითი 3: იპოვეთ ტექსტი მისი ზოგიერთი სიმბოლოს მითითებით

ტექსტის საძიებლად მხოლოდ მისი ნაწილის მითითებით, შეიყვანეთ არგუმენტი Შეხედე როგორც xlნაწილი ან გამოტოვეთ ეს არგუმენტი. ნაგულისხმევად, FIND ფუნქცია ემთხვევა საძიებო მნიშვნელობის სიმბოლოებს მთელ სტრიქონს. შემდეგ ის აბრუნებს უჯრედს, რომელიც შეიცავს მთელ სტრიქონს.

შეხედეთ ქვემოთ მოცემულ მაგალითს:

Sub LocateName()
დიაპაზონი ("A1:A10"). Find (What:="Ped", LookAt:=xlPart). აირჩიეთ
ბოლო Sub

ეს კოდი ეძებს სიმბოლოებს "Ped” Sheet1-ის A25:A3 დიაპაზონში. დაბრუნდა მნიშვნელობის შემცველი უჯრედი, რომელიც დასახელებულია ნაწილობრივი მიმოწერა🇧🇷 ასე რომ, მიუხედავად იმისა, მოთავსებულია თუ არა საძიებო მნიშვნელობის სიმბოლოები სტრიქონის დასაწყისში, შუაში ან ბოლოს, Excel VBA აბრუნებს შესაბამისობას.

კომენტარები: მუდმივი xlნაწილი ის შეიძლება გამოტოვდეს კოდიდან, რადგან ეს არის FIND ფუნქციის ნაგულისხმევი მნიშვნელობა. მაგრამ თუ ეს არგუმენტი მითითებულია, დარწმუნდით, რომ ის არ არის ჩასმული ორმაგ ბრჭყალებში.

მაგალითი 4: ტექსტის პოვნა კომენტარში

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

უკეთესი გაგებისთვის, შეხედეთ ქვემოთ მოცემულ მაგალითს, სადაც გვაქვს სამუშაო ფურცელი, რომელიც შეიცავს სამ უჯრედს კომენტარებით (მითითებულია წითელი სამკუთხედებით). აქედან ჩვენ გვინდა ვიპოვოთ ტექსტი "გადახდილი საკომისიო” მდებარეობს ერთ-ერთ კომენტარში. ამ შემთხვევაში, ჩვენ გამოვიყენებთ შემდეგ კოდს:

Sub LocateComment()
დიაპაზონი ("A1:B10"). იპოვნეთ (What:="საკომისიო იხდის", LookIn:=xlComments). აირჩიეთ
ბოლო Sub

იპოვნეთ ტექსტი კომენტარში

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

მაგალითი 5: შეცდომების დამუშავება FIND ფუნქციაში VBA-ში

იმ შემთხვევაში, თუ ტექსტი, რომელსაც ჩვენ ვეძებთ, არ არის მოცემულ დიაპაზონში, VBA დააბრუნებს შეცდომას, როგორც ეს ნაჩვენებია ქვემოთ:

შეცდომა 91

ამ შეცდომის თავიდან ასაცილებლად, ჩვენ შეგვიძლია გამოვიყენოთ კოდი, როგორც ნაჩვენებია ქვემოთ:

Sub LocateName()
ბუნდოვანი შედეგი, როგორც ვარიანტი

წლის შეცდომა რეზიუმე შემდეგი
დიაპაზონი ("A1:A10"). იპოვეთ (რა: "კრისტინა"). აირჩიეთ
შეცდომის შესახებ GoTo 0

შედეგი = ActiveCell.Value

თუ შედეგი = "" მაშინ
MsgBox "მნიშვნელობა, რომელსაც ეძებთ, მიუწვდომელია მოწოდებულ დიაპაზონში!"
გასვლა ქვე
ბოლო თუ

ბოლო Sub

გაითვალისწინეთ ზემოთ მოცემულ კოდში, რომ თუ VBA იპოვის მნიშვნელობას, ის აჩვენებს ნაპოვნი მნიშვნელობას, ან სხვაგვარად გამოჩნდება შეტყობინება როგორც "მნიშვნელობა, რომელსაც ეძებთ, მიუწვდომელია მოცემულ დიაპაზონში🇧🇷

დამატებითი რჩევებისთვის, თუ როგორ უნდა გამოასწოროთ VBA შეცდომები, იხილეთ სტატია: Excel VBA შეცდომები: ყველაფერი რაც თქვენ უნდა იცოდეთ!

დეტალები დასამახსოვრებელი

  • FIND ფუნქცია RANGE თვისების ნაწილია და თქვენ უნდა გამოიყენოთ FIND მხოლოდ დიაპაზონის არჩევის შემდეგ.
  • FIND ფუნქციაში პირველი არგუმენტი (რა), პლუს ყველაფერი დანარჩენი არჩევითია.
  • თუ იპოვით მნიშვნელობას კონკრეტული უჯრედის შემდეგ, შეგიძლიათ მიუთითოთ უჯრედი პარამეტრში შემდეგ საძიებო სინტაქსის.

ჩამოტვირთეთ ცხრილი აქ შეიცავს ამ სახელმძღვანელოში წარმოდგენილ მაგალითებს.

ასევე შეამოწმეთ შემდეგი Excel რჩევები:

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

ტომი ბენქსი
მოხარული ვიქნებით მოვისმინოთ რას ფიქრობთ

დატოვეთ პასუხი

TechnoBreak | შეთავაზებები და მიმოხილვები
logo
რეგისტრაციის ჩართვა პარამეტრებში - ზოგადი
საყიდლების კალათი