როგორ გამოვიყენოთ InStr ფუნქცია VBA-ში (3 მარტივი მაგალითი)

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

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

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

InStr Function.xlsm

შესავალი VBA InStr ფუნქცია

  • რეზიუმე

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

  • სინტაქსი

InStr([დაწყება ],string1,string2,[შედარება])

  • არგუმენტები
არგუმენტი მოთხოვნა აღწერილობა

[დაწყება] სურვილისამებრ პოზიცია, საიდანაც ის დაიწყებს ძიებას. ნაგულისხმევი არის 1.
string1 საჭირო სტრიქონი, რომლის ფარგლებშიც ის ეძებს მოცემულ სტრიქონს.
string2 საჭიროა სტრიქონი, რომელსაც ის ეძებს მოცემულ სტრიქონში.
[შედარება] არასავალდებულო რიცხვითი მნიშვნელობა {-1,0,1,2} შორის, რომელიც განსაზღვრავს შედარების ტიპს. Theნაგულისხმევი არის -1 (vbUseCompareOption). თუ Option Compare განცხადება არ არის მითითებული, შეასრულეთ ორობითი შედარება.

შენიშვნა:

  • თუმცა [დაწყება] არგუმენტი და არგუმენტი [შედარება] არჩევითია, თქვენ გჭირდებათ არგუმენტი [დაწყება] , თუ მიუთითებთ არგუმენტს [შედარება] . წინააღმდეგ შემთხვევაში, ეს გამოიწვევს შეცდომას.
  • თუ არგუმენტი [დაწყება] ერთი ან ორივე და არგუმენტი [შედარება] არის Null , შეგემთხვევათ შეცდომა.
  • [შეადარეთ] არგუმენტში მითითებული ოთხი მნიშვნელობა ახორციელებს შედარების ოთხ სხვადასხვა ტიპს. ისინი მოხსენიებულია ქვემოთ:
ღირებულება მუდმივი DESCRIPTION

-1 vbUseCompareOption ახორციელებს შედარებას მითითებულ Option Compare განაცხადი.
0 vbBinaryCompare ახორციელებს ორობით შედარებას.
1 vbTextCompare ახორციელებს ტექსტის შედარებას.
2 vbDatabaseCompare ახორციელებს შედარებას თქვენი მონაცემთა ბაზის საფუძველზე .
  • Option Compare განცხადება არის განცხადება, რომელიც მოცემულია ძირითადი VBA კოდის დაწყებამდე. იგი განსაზღვრავს, მოძებნის თუ არა კოდი ორობით შედარებას თუ ტექსტის შედარებას, როცა საჭიროა. მარტივი სიტყვებით , Binary Comparison ნიშნავს რეგისტრის მგრძნობიარესშედარება.
  • მარტივი სიტყვებით , ტექსტის შედარება ნიშნავს შედარებას, რომელიც არ არის მგრძნობიარე.
  • დაბრუნების მნიშვნელობა
    • აბრუნებს პოზიციას string1 საიდანაც დაიწყო string2 .
    • თუ string2 არ მოიძებნება string1 -ში დაწყებული start პოზიციიდან, აბრუნებს 0-ს.
    • თუ string1 არის ნულოვანი სიგრძის, აბრუნებს 0.
    • თუ string2 არის ნულოვანი სიგრძის, აბრუნებს არგუმენტს start .
    • და ბოლოს, თუ რომელიმე string1 ან string2 არის Null , აბრუნებს შეცდომას.
  • 3 მარტივი მაგალითი VBA InStr ფუნქციის გამოსაყენებლად

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

    1. გადაწყვეტილების მიღება არის თუ არა მისამართი ელფოსტის მისამართი VBA InStr ფუნქციის გამოყენებით

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

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

    ნაბიჯები:

    • საწყისში გადადით დეველოპერი ჩანართზე და აირჩიეთ Visual Basic (ან დააჭირეთ Alt+F11) VBA გასახსნელადფანჯარა.

    • შემდეგ, VBA ფანჯარაში გადადით Insert > მოდული .

    • ამის შემდეგ მოდულზე ჩასვით შემდეგი კოდი:
    1142

    • უფრო მეტიც, ჩვენ შევქმენით ფუნქცია სახელწოდებით DECISION . ის წყვეტს არის თუ არა მისამართი ელექტრონული ფოსტის მისამართი. მოდით, გამოვიყენოთ ფუნქცია ჩვენს ხელთ არსებულ მონაცემთა ნაკრებზე.
    • უჯრედზე C5 ჩაწერეთ შემდეგი ფორმულა და შემდეგ ავტომატურად შეავსეთ დანარჩენი უჯრედები Fill Handle -ის გამოყენებით.
    =DECISION(B5)

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

    🎓 როგორ მუშაობს კოდი?

    • ფუნქცია DECISION(string1 As String)

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

    • Dim Position როგორც მთელი რიცხვი

    ის აცხადებს მთელი რიცხვის ცვლადს სახელად Position .

    • პოზიცია = InStr(1, string1, „@“, 0)

    ეს ანიჭებს მნიშვნელობას განათავსეთ ცვლადი, როგორც InStr ფუნქციის გამომავალი არგუმენტებით 1, string1, "@" და 0 . მოკლედ, ეს ანიჭებს პოზიციას მისამართზე, სადაც არის “@” .

    • თუ თანამდებობა = 0, მაშინ DECISION = “არა ელფოსტა”

    ის ანიჭებს DECISION ფუნქციის გამოსავალს, როგორც „არა ელფოსტა“ , თუ პოზიცია ცვლადი არის 0 , რაც ნიშნავს, რომ მისამართში არ იყო “@” .

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

    • Else DECISION = „ელფოსტა“

    ეს ანიჭებს DECISION ფუნქციის გამომავალი, როგორც „ელფოსტა“ , თუ მისამართში იყო „@“ . ამრიგად, მისამართები, სადაც არის „@“ კატეგორიზებულია როგორც ელფოსტა , ხოლო დანარჩენი კატეგორიზებულია როგორც „არა ელფოსტა“ .

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

    • როგორ გამოვიყენოთ VBA UCASE ფუნქცია Excel-ში (4 მაგალითი)
    • გამოიყენეთ MsgBox ფუნქცია Excel VBA-ში (სრული სახელმძღვანელო)
    • როგორ გამოვიყენოთ VBA SPLIT ფუნქცია Excel-ში (5 მაგალითი)
    • გამოიყენეთ LCase ფუნქცია VBA-ში Excel-ში (ერთად 4 მაგალითი)
    • როგორ გამოვიყენოთ ფიქსის ფუნქცია Excel VBA-ში (4 მაგალითი)

    2. VBA InStr ფუნქციის გამოყენება ზოგიერთი ელფოსტის მისამართის გაფართოების ამოღების მიზნით

    აქ, ჩვენ გვაქვს ზოგიერთი მომხმარებლის ელფოსტის მისამართის სია. ამჯერად ჩვენ გამოვიყვანთ ელ.ფოსტის მისამართის გაფართოებას, როგორიცაა აქვს თუ არა gmail.com ან yahoo.com .

    ამისათვის მიჰყევით ქვემოთ მოცემულ ნაბიჯებს.

    ნაბიჯები:

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

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

    • ბოლოს, ჩვენ ვხედავთ, რომ ჩვენ წარმატებით ამოიღეთ ყველა ელფოსტის გაფართოება.

    🎓 როგორ მუშაობს კოდი?

    • ფუნქცია EXTENSION (ელფოსტა როგორც სტრიქონი)

    ეს ქმნის ახალ ფუნქციას სახელად EXTENSION , სტრიქონის არგუმენტი სახელად ელფოსტა .

    • Dim Position როგორც მთელი რიცხვი

    ეს ნაწილი აცხადებს მთელ ცვლადს სახელად Position .

    • პოზიცია = InStr(1, ელფოსტა, „@“, 0)

    ეს ანიჭებს <1-ის მნიშვნელობას>დააყენეთ ცვლადი, როგორც InStr ფუნქციის გამომავალი არგუმენტებით 1, ელფოსტა, „@“ და 0 . მოკლედ, ეს ანიჭებს პოზიციას ელფოსტა სადაც არის “@” .

    • EXTENSION = Right(ელფოსტა, (Len (ელ. ფოსტა) – პოზიცია))

    ეს ნაწილი ანიჭებს EXTENSION ფუნქციის გამოსავალს, როგორც სიმბოლოს “@” სიმბოლოს შემდეგ. ეს არის ელფოსტის საჭირო გაფართოება.

    3. სახელის ან გვარის ამოღება სახელიდან VBA InStr ფუნქციის გამოყენებით

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

    ამისთვის მიჰყევით ქვემოთ მოცემულ ნაბიჯებს.

    0> ნაბიჯები:

    • პირველ რიგში, მეთოდის 1 მსგავსად, ჩასვით ქვემოთ მოცემული კოდი ახალ მოდულში VBA  ფანჯარაში.
    6908

    • აქ ჩვენ შევქმენით ფუნქცია სახელწოდებით SHORTNAME , რომელიც ამოიღებს სახელს ან გვარს სახელიდან. მოდით გამოვიყენოთ ეს ფორმულა ჩვენს მონაცემთა ნაკრებზე.
    • პირველ რიგში, სახელის ამოსაღებად, ჩაწერეთ ქვემოთ მოცემული ფორმულა უჯრედში C5 .
    =SHORTNAME(B5,-1)

    • ბოლოს, გვარების ამოსაღებად ჩავწერეთ შემდეგი ფორმულა D5 :
    =SHORTNAME(B5,1)

    • შემდეგ, თუ ჩვენ ავტომატურად შევავსებთ დანარჩენ უჯრედებს Fill Handler , ჩვენ ვნახავთ სასურველ შედეგს.

    🎓 როგორ მუშაობს კოდი?

    • ფუნქცია SHORTNAME (სახელი როგორც სტრიქონი, პირველი_ან_ბოლო როგორც მთელი რიცხვი)

    ის ქმნის ახალ ფუნქციას, სახელწოდებით SHORTNAME ერთი სტრიქონის არგუმენტით სახელი და ერთი მთელი არგუმენტით პირველი_ან_ბოლო .

    • Dim Break As Integer

    ეს ნაწილი აცხადებს ახალ მთელ ცვლადს სახელად Break .

    • Break = InStr(1, სახელი, ” “, 0)

    ის ანიჭებს Break ცვლადის მნიშვნელობას, როგორც InStr ფუნქციის გამოსავალს არგუმენტებით. 1, სახელი, “ ” და 0 . მოკლედ, ეს ანიჭებს პოზიციას Name სადაც არის სივრცე (“ ”).

    • თუ First_or_Last = -1 მაშინ SHORTNAME = Left(Name, Break – 1)

    ეს ხაზი ანიჭებს SHORTNAME ფუნქციის გამოსავალს, როგორც სიმბოლოებს სივრცის წინ, თუ პირველი_ან_ბოლო არგუმენტი არის -1. ეს არის პირველი სახელი.

    • SHORTNAME = Right(Name, Len(Name) – Break)

    ეს ნაწილი ანიჭებს გამოსავალს SHORTNAME ფუნქციონირებს როგორც სიმბოლოები სივრცის შემდეგ, თუ არგუმენტი First_or_Last არის 1. ეს არის გვარი.

    დასკვნა

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

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