របៀបប្រើអនុគមន៍ InStr ក្នុង VBA (ឧទាហរណ៍ងាយៗ 3)

  • ចែករំលែកនេះ។
Hugh West

ខណៈពេលកំពុងធ្វើការជាមួយនឹងកូដ Excel VBA យើងបានជួបប្រទះនូវមុខងារដែលភ្ជាប់មកជាមួយមួយចំនួនដែលបំប្លែងកិច្ចការស្មុគស្មាញទៅជាកូដតូចមួយ។ InStr គឺជាមុខងារដែលមាននៅក្នុង Excel VBA ដែលស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យមួយផ្សេងទៀតដោយចាប់ផ្តើមពីទីតាំងដែលបានផ្តល់ឱ្យ។ ថ្ងៃនេះខ្ញុំនឹងបង្ហាញពីរបៀបដែលអ្នកអាចប្រើមុខងារ InStr នៅក្នុង VBA ដើម្បីស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យផ្សេងទៀត។

ទាញយកសៀវភៅលំហាត់

InStr Function.xlsm

ការណែនាំអំពី អនុគមន៍ VBA InStr

  • សង្ខេប

ស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យ ដោយចាប់ផ្តើមពីទីតាំងដែលបានផ្តល់ឱ្យ។ ប្រសិនបើរកឃើញការផ្គូផ្គង ត្រឡប់ទីតាំងនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យពីកន្លែងដែលការប្រកួតបានចាប់ផ្តើម។

  • វាក្យសម្ព័ន្ធ

InStr([start ],string1,string2,[compare])

  • អាគុយម៉ង់
<14 <14
អាគុយម៉ង់ តម្រូវការ ការពិពណ៌នា

[start] ស្រេចចិត្ត ទីតាំងដែលវានឹងចាប់ផ្តើមស្វែងរក។ លំនាំដើមគឺ 1.
string1 ទាមទារ ខ្សែអក្សរដែលវាស្វែងរកខ្សែអក្សរដែលបានផ្តល់ឱ្យ។
string2 ទាមទារ ខ្សែអក្សរដែលវាស្វែងរកក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យ។
[ប្រៀបធៀប] ស្រេចចិត្ត តម្លៃជាលេខរវាង {-1,0,1,2} ដែលបញ្ជាក់ប្រភេទនៃការប្រៀបធៀប។ នេះ។លំនាំដើមគឺ -1 (vbUseCompareOption) ។ ប្រសិនបើ Option Compare statement មិនត្រូវបានបញ្ជាក់ទេ សូមអនុវត្តការប្រៀបធៀបប្រព័ន្ធគោលពីរ។

ចំណាំ៖

  • ទោះបីជា [start] argument និង [compare] argument គឺស្រេចចិត្ត អ្នកត្រូវការអាគុយម៉ង់ [start] ប្រសិនបើអ្នកបញ្ជាក់អាគុយម៉ង់ [compare] ។ បើមិនដូច្នេះទេ វានឹងបង្កើនកំហុស។
  • ប្រសិនបើអាគុយម៉ង់មួយ ឬទាំងពីរនៃ [start] និង [ប្រៀបធៀប] អាគុយម៉ង់គឺ Null អ្នកនឹងប្រឈមមុខនឹងកំហុស។
  • តម្លៃដែលបានបញ្ជាក់ចំនួនបួននៅក្នុងអាគុយម៉ង់ [ប្រៀបធៀប] អនុវត្តការប្រៀបធៀបបួនប្រភេទផ្សេងគ្នា។ ពួកវាត្រូវបានរៀបរាប់ខាងក្រោម៖
តម្លៃ ថេរ ការពិពណ៌នា

-1 vbUseCompareOption អនុវត្តការប្រៀបធៀបដែលបានបញ្ជាក់នៅក្នុង ជម្រើសប្រៀបធៀបសេចក្តីថ្លែងការណ៍។
0 vbBinaryCompare អនុវត្តការប្រៀបធៀបប្រព័ន្ធគោលពីរ។
1 vbTextCompare អនុវត្តការប្រៀបធៀបអត្ថបទ។
2 vbDatabaseCompare ធ្វើការប្រៀបធៀបដោយផ្អែកលើមូលដ្ឋានទិន្នន័យរបស់អ្នក។ .
  • ជម្រើសប្រៀបធៀប សេចក្តីថ្លែងការណ៍គឺជាសេចក្តីថ្លែងការណ៍ដែលបានផ្តល់មុនពេលកូដ VBA ចម្បងចាប់ផ្តើម។ វា​បញ្ជាក់​ថា​តើ​កូដ​នឹង​ស្វែងរក​ការ​ប្រៀបធៀប​ប្រព័ន្ធ​គោលពីរ ឬ​ការ​ប្រៀបធៀប​អត្ថបទ​នៅពេល​ដែល​ត្រូវ​ការ។

ជម្រើស​ប្រៀបធៀប​អត្ថបទ

    • នៅក្នុងពាក្យសាមញ្ញ ការប្រៀបធៀបប្រព័ន្ធគោលពីរ មានន័យថាប្រកាន់អក្សរតូចធំការប្រៀបធៀប។
    • នៅក្នុងពាក្យសាមញ្ញ ការប្រៀបធៀបអត្ថបទ មានន័យថាការប្រៀបធៀបដែលមិនប្រកាន់អក្សរតូចធំ។
  • តម្លៃត្រឡប់
    • ត្រឡប់ទីតាំងក្នុង string1 ដែល string2 បានចាប់ផ្តើម។
    • ក្នុងករណី string2 រកមិនឃើញ ក្នុង string1 ដោយចាប់ផ្តើមពីទីតាំង start ត្រឡប់ 0។
    • ប្រសិនបើ string1 មានប្រវែងសូន្យ ត្រឡប់ 0។
    • ប្រសិនបើ string2 មានប្រវែងសូន្យ ត្រឡប់អាគុយម៉ង់ start
    • ហើយចុងក្រោយ ប្រសិនបើណាមួយនៃ string1 string2 គឺ Null ត្រឡប់កំហុសមួយ។

3 ឧទាហរណ៍ងាយស្រួលប្រើមុខងារ VBA InStr

In ផ្នែកនេះ យើងនឹងឃើញឧទាហរណ៍ងាយៗចំនួនបីនៃការអនុវត្តមុខងារ VBA InStr នៅក្នុង Excel ។ តោះមើលឧទាហរណ៍ដំបូងនៃមុខងារ InStr នៅក្នុងកូដ VBA។

1. ការសម្រេចចិត្តថាតើអាសយដ្ឋានមួយជាអាសយដ្ឋានអ៊ីមែលឬអត់ ដោយប្រើមុខងារ VBA InStr

នៅទីនេះ យើងបានយកសំណុំទិន្នន័យដែលមានអាសយដ្ឋានទំនាក់ទំនងមួយចំនួនរបស់អតិថិជន។ គោលដៅរបស់យើងនៅទីនេះគឺដើម្បីកំណត់ថាតើអាសយដ្ឋានគឺជាអាសយដ្ឋានអ៊ីមែលឬអត់។

ឥឡូវនេះយើងនឹងបង្កើតកូដ VBA ដោយប្រើមុខងារ InStr ដើម្បីកំណត់អត្តសញ្ញាណ ថាតើវាជាអាសយដ្ឋានអ៊ីមែលឬអត់។ ដើម្បីធ្វើដូច្នេះ សូមអនុវត្តតាមជំហានខាងក្រោម។

ជំហាន៖

  • ដំបូង សូមចូលទៅកាន់ផ្ទាំង អ្នកអភិវឌ្ឍន៍ ហើយជ្រើសរើស Visual Basic (ឬចុច Alt+F11) ដើម្បីបើក VBA បង្អួច។

  • បន្ទាប់មក នៅលើបង្អួច VBA សូមចូលទៅកាន់ បញ្ចូល > ម៉ូឌុល

  • បន្ទាប់ពីនោះ បិទភ្ជាប់កូដខាងក្រោមនៅលើម៉ូឌុល៖
2104

<27

  • លើសពីនេះទៅទៀត យើងបានបង្កើតមុខងារមួយហៅថា ការសម្រេចចិត្ត ។ វាសម្រេចថាតើអាសយដ្ឋានមួយគឺជាអាសយដ្ឋានអ៊ីមែលឬអត់។ តោះអនុវត្តមុខងារទៅសំណុំទិន្នន័យដែលយើងមាន។
  • នៅលើក្រឡា C5 សូមសរសេររូបមន្តខាងក្រោម រួចបំពេញដោយស្វ័យប្រវត្តិនូវកោសិកាដែលនៅសល់ដោយប្រើ Fill Handle
=DECISION(B5)

  • ដូចដែលយើងបានឃើញ យើងបានកំណត់អាសយដ្ឋាននីមួយៗថាតើវាជាអាសយដ្ឋានអ៊ីមែលឬអត់ ឬអត់។

🎓 តើកូដដំណើរការយ៉ាងដូចម្តេច?

  • Function DECISION(string1 As String)

ដំបូង វាបង្កើតមុខងារមួយហៅថា DECISION ជាមួយនឹង អាគុយម៉ង់ខ្សែអក្សរដែលមានឈ្មោះថា string1

  • Dim Position As Integer

វាប្រកាសអថេរចំនួនគត់ដែលមានឈ្មោះថា Position .

  • ទីតាំង = InStr(1, string1, “@”, 0)

វាកំណត់តម្លៃនៃ ទីតាំង អថេរជាលទ្ធផលនៃអនុគមន៍ InStr ជាមួយនឹងអាគុយម៉ង់ 1, string1, “@” និង 0 ។ សរុបមក វាកំណត់ទីតាំងនៅក្នុងអាសយដ្ឋានដែលមាន “@”

  • ប្រសិនបើទីតាំង = 0 បន្ទាប់មក DECISION = “មិនមែនអ៊ីមែល”

វាកំណត់លទ្ធផលនៃមុខងារ DeCISION ជា “Not Email” ប្រសិនបើ ទីតាំង អថេរគឺ 0 ដែលមានន័យថាមិនមាន “@” នៅក្នុងអាសយដ្ឋាន។

(រំលឹកឡើងវិញប្រសិនបើរកមិនឃើញខ្សែអក្សរណាមួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យនោះ InStr function ត្រឡប់ 0 )។

  • Else DECISION = “Email”

វាកំណត់ លទ្ធផលនៃមុខងារ 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<2 ថ្មី> ម៉ូឌុល ហើយបិទភ្ជាប់កូដខាងក្រោមនៅក្នុងបង្អួច។
9763

  • លើសពីនេះទៀត យើងបានបង្កើតមុខងារមួយហៅថា ផ្នែកបន្ថែម ។ វាទាញយកផ្នែកបន្ថែមនៃអាសយដ្ឋានអ៊ីមែលណាមួយ។
  • លើសពីនេះទៀត សូមអនុវត្តមុខងារនេះចំពោះសំណុំទិន្នន័យដែលយើងមាន។ ដំបូង បញ្ចូលរូបមន្តនេះនៅលើក្រឡា C5 ហើយបន្ទាប់មកចុចពីរដងលើ Fill Handle
=EXTENSION(B5)

  • ជាចុងក្រោយ យើងអាចឃើញថាយើងបានទាញយកផ្នែកបន្ថែមនៃអ៊ីមែលទាំងអស់ដោយជោគជ័យ។

🎓 តើកូដដំណើរការយ៉ាងដូចម្តេច?

  • Function EXTENSION(Email As String)

វាបង្កើតមុខងារថ្មីមួយហៅថា EXTENSION ដោយមាន អាគុយម៉ង់ខ្សែអក្សរដែលមានឈ្មោះថា អ៊ីមែល

  • Dim Position As Integer

ផ្នែកនេះប្រកាសអថេរចំនួនគត់ដែលមានឈ្មោះថា Position .

  • Position = InStr(1, Email, “@”, 0)

វាកំណត់តម្លៃនៃ Position variable ជាលទ្ធផលនៃអនុគមន៍ InStr ជាមួយនឹងអាគុយម៉ង់ 1, Email, “@” និង 0 ។ សរុបមក វាកំណត់ទីតាំងនៅក្នុង អ៊ីមែល ដែលមាន “@”

  • EXTENSION = Right(Email, (Len (អ៊ីមែល) – ទីតាំង))

ផ្នែកនេះកំណត់លទ្ធផលនៃមុខងារ EXTENSION ជាតួអក្សរបន្ទាប់ពីនិមិត្តសញ្ញា “@” ។ នេះជាផ្នែកបន្ថែមដែលត្រូវការនៃ អ៊ីមែល

3. ការស្រង់ចេញនូវនាមខ្លួន ឬនាមត្រកូលចេញពីឈ្មោះ ដោយប្រើប្រាស់មុខងារ VBA InStr

ជាចុងក្រោយ យើងនឹងបំពេញកិច្ចការដែលខុសប្លែកពីគេ។ លើក​នេះ​យើង​មាន​ឈ្មោះ​បុគ្គលិក​មួយ​ចំនួនក្រុមហ៊ុន​មួយ។ ហើយយើងនឹងព្យាយាមបង្កើតមុខងារមួយដើម្បីស្រង់ចេញទាំងនាមខ្លួន ឬនាមត្រកូលរបស់និយោជិត។

ដើម្បីធ្វើដូច្នេះ សូមអនុវត្តតាមជំហានខាងក្រោម។

ជំហាន៖

  • ដំបូង ស្រដៀងទៅនឹង វិធីសាស្រ្ត 1 សូមបិទភ្ជាប់កូដខាងក្រោមក្នុងម៉ូឌុលថ្មីនៅក្នុងបង្អួច VBA ។
5592

  • នៅទីនេះ យើងបានបង្កើតមុខងារមួយហៅថា SHORTNAME ដែលស្រង់ចេញទាំងឈ្មោះដំបូង ឬនាមត្រកូលពីឈ្មោះមួយ។ តោះអនុវត្តរូបមន្តនេះទៅសំណុំទិន្នន័យរបស់យើង។
  • ដំបូង ដើម្បីស្រង់ឈ្មោះដំបូង សូមសរសេររូបមន្តខាងក្រោមក្នុងក្រឡា C5
<7 =SHORTNAME(B5,-1)

  • ជាចុងក្រោយ ដើម្បីស្រង់នាមត្រកូល យើងសរសេររូបមន្តខាងក្រោមក្នុង D5 :
=SHORTNAME(B5,1)

  • បន្ទាប់មក ប្រសិនបើយើងបំពេញក្រឡាដែលនៅសល់ដោយស្វ័យប្រវត្តជាមួយ Fill Handler យើងនឹងឃើញលទ្ធផលដែលយើងចង់បាន។

🎓 តើកូដដំណើរការយ៉ាងដូចម្តេច?

  • មុខងារ SHORTNAME(ឈ្មោះជាខ្សែអក្សរ First_or_Last As Integer)

វាបង្កើតមុខងារថ្មីហៅថា SHORTNAME ជាមួយ​អាគុយម៉ង់ String មួយ​ដែល​មាន​ឈ្មោះ Name និង​ចំនួន​គត់​មួយ Argument ដែល​មាន​ឈ្មោះ First_or_Last

  • Dim Break As Integer

ផ្នែកនេះប្រកាសអថេរចំនួនគត់ថ្មីដែលមានឈ្មោះថា Break

  • Break = InStr(1, Name, ” “, 0)

វាកំណត់តម្លៃនៃអថេរ Break ជាលទ្ធផលនៃអនុគមន៍ InStr ជាមួយនឹងអាគុយម៉ង់ 1 ឈ្មោះ “ ” និង 0 ។ សរុបមក វាកំណត់ទីតាំងក្នុង ឈ្មោះ ដែលមាន ដកឃ្លា (“ ”)។

  • ប្រសិនបើ First_or_Last = -1 បន្ទាប់មក SHORTNAME = Left(Name, Break – 1)

បន្ទាត់នេះកំណត់លទ្ធផលនៃអនុគមន៍ SHORTNAME ជាតួអក្សរនៅពីមុខ space , ប្រសិនបើអាគុយម៉ង់ First_or_Last គឺ -1។ នេះគឺជាឈ្មោះដំបូង។

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

ផ្នែកនេះកំណត់លទ្ធផលនៃ SHORTNAME មុខងារជាតួអក្សរបន្ទាប់ពី ដកឃ្លា ប្រសិនបើអាគុយម៉ង់ First_or_Last គឺ 1។ នេះគឺជានាមត្រកូល។

សេចក្តីសន្និដ្ឋាន

តាមវិធីនេះ អ្នកអាចសរសេរកូដ VBA ជាមួយនឹងមុខងារ InStr ដែលស្វែងរកទីតាំងនៃខ្សែអក្សរជាក់លាក់មួយនៅក្នុងផ្នែកផ្សេងទៀតដែលបានផ្តល់ឱ្យ ខ្សែអក្សរ ហើយបន្ទាប់មកអ្នកអាចបង្កើតមុខងារផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការប្រើប្រាស់ផ្សេងៗ។ លើសពីនេះ ប្រសិនបើអ្នកមានចម្ងល់ផ្សេងៗ សូមសួរពួកយើងដោយសេរី។

Hugh West គឺជាគ្រូបណ្តុះបណ្តាល Excel ដែលមានបទពិសោធន៍ខ្ពស់ និងជាអ្នកវិភាគដែលមានបទពិសោធន៍ជាង 10 ឆ្នាំនៅក្នុងឧស្សាហកម្មនេះ។ លោកបានបញ្ចប់ថ្នាក់បរិញ្ញាបត្រផ្នែកគណនេយ្យ និងហិរញ្ញវត្ថុ និងបរិញ្ញាបត្រជាន់ខ្ពស់ផ្នែកគ្រប់គ្រងពាណិជ្ជកម្ម។ Hugh មានចំណង់ចំណូលចិត្តក្នុងការបង្រៀន ហើយបានបង្កើតវិធីសាស្រ្តបង្រៀនពិសេសមួយ ដែលងាយស្រួលធ្វើតាម និងយល់។ ចំណេះដឹងជំនាញ Excel របស់គាត់បានជួយសិស្សានុសិស្ស និងអ្នកជំនាញរាប់ពាន់នាក់នៅទូទាំងពិភពលោកបង្កើនជំនាញ និងពូកែក្នុងអាជីពរបស់ពួកគេ។ តាមរយៈប្លុករបស់គាត់ លោក Hugh ចែករំលែកចំណេះដឹងរបស់គាត់ជាមួយពិភពលោក ដោយផ្តល់ជូននូវការបង្រៀន Excel ដោយឥតគិតថ្លៃ និងការបណ្តុះបណ្តាលតាមអ៊ីនធឺណិត ដើម្បីជួយបុគ្គល និងអាជីវកម្មឈានដល់សក្តានុពលពេញលេញរបស់ពួកគេ។