តារាងមាតិកា
ខណៈពេលកំពុងធ្វើការជាមួយនឹងកូដ Excel VBA យើងបានជួបប្រទះនូវមុខងារដែលភ្ជាប់មកជាមួយមួយចំនួនដែលបំប្លែងកិច្ចការស្មុគស្មាញទៅជាកូដតូចមួយ។ InStr គឺជាមុខងារដែលមាននៅក្នុង Excel VBA ដែលស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យមួយផ្សេងទៀតដោយចាប់ផ្តើមពីទីតាំងដែលបានផ្តល់ឱ្យ។ ថ្ងៃនេះខ្ញុំនឹងបង្ហាញពីរបៀបដែលអ្នកអាចប្រើមុខងារ InStr នៅក្នុង VBA ដើម្បីស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យផ្សេងទៀត។
ទាញយកសៀវភៅលំហាត់
InStr Function.xlsm
ការណែនាំអំពី អនុគមន៍ VBA InStr
- សង្ខេប
ស្វែងរកខ្សែអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យ ដោយចាប់ផ្តើមពីទីតាំងដែលបានផ្តល់ឱ្យ។ ប្រសិនបើរកឃើញការផ្គូផ្គង ត្រឡប់ទីតាំងនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យពីកន្លែងដែលការប្រកួតបានចាប់ផ្តើម។
- វាក្យសម្ព័ន្ធ
InStr([start ],string1,string2,[compare])
- អាគុយម៉ង់
អាគុយម៉ង់ | តម្រូវការ | ការពិពណ៌នា
|
---|---|---|
[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 ។
=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 ដែលស្វែងរកទីតាំងនៃខ្សែអក្សរជាក់លាក់មួយនៅក្នុងផ្នែកផ្សេងទៀតដែលបានផ្តល់ឱ្យ ខ្សែអក្សរ ហើយបន្ទាប់មកអ្នកអាចបង្កើតមុខងារផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការប្រើប្រាស់ផ្សេងៗ។ លើសពីនេះ ប្រសិនបើអ្នកមានចម្ងល់ផ្សេងៗ សូមសួរពួកយើងដោយសេរី។