តារាងមាតិកា
ការអនុវត្ត VBA គឺជាវិធីសាស្ត្រដ៏មានប្រសិទ្ធភាព លឿនបំផុត និងសុវត្ថិភាពបំផុត ដើម្បីដំណើរការប្រតិបត្តិការណាមួយនៅក្នុង Excel។ ក្នុងអត្ថបទនេះ យើងនឹងបង្ហាញអ្នកពីរបៀបស្វែងរកខ្សែអក្សរជាក់លាក់ក្នុងខ្សែអក្សរផ្សេងទៀតដែលបានផ្ដល់ដោយប្រើ VBA ក្នុង Excel។
ទាញយកគំរូអនុវត្ត
អ្នក អាចទាញយកគំរូការអនុវត្ត Excel ដោយឥតគិតថ្លៃពីទីនេះ។
VBA ដើម្បីស្វែងរកក្នុង String.xlsm
អនុគមន៍ InStr
Microsoft Excel មានមុខងារភ្ជាប់មកជាមួយហៅថា អនុគមន៍ InStr ដើម្បីស្វែងរកទីតាំងនៃខ្សែអក្សរជាក់លាក់នៅក្នុង String ដែលបានផ្តល់ឱ្យ។
វាក្យសម្ព័ន្ធទូទៅ៖
InStr([start], string1, string2, [compare])
នៅទីនេះ
អាគុយម៉ង់ | ទាមទារ / ស្រេចចិត្ត | និយមន័យ |
---|---|---|
ចាប់ផ្តើម | ស្រេចចិត្ត | ទីតាំងចាប់ផ្តើមនៃការស្វែងរក។
|
string1 | ទាមទារ | ខ្សែអក្សរដែលត្រូវស្វែងរកគឺ Primary String។ |
string2 | ទាមទារ | ខ្សែអក្សរដែលត្រូវស្វែងរកក្នុងខ្សែអក្សរចម្បង . |
ប្រៀបធៀប | ស្រេចចិត្ត | មុខងារ InStr គឺប្រកាន់អក្សរតូចធំតាមលំនាំដើម។ ប៉ុន្តែប្រសិនបើអ្នកចង់ដំណើរការ case insensitive InStr នោះ អ្នកអាចឆ្លងកាត់អាគុយម៉ង់នៅទីនេះ ដើម្បីធ្វើការប្រៀបធៀបជាក់លាក់មួយ។ អាគុយម៉ង់នេះអាចមានដូចខាងក្រោមតម្លៃ
តាមលំនាំដើម InStr យក vbBinaryCompare ជាអាគុយម៉ង់ប្រៀបធៀប។ |
8 ឧទាហរណ៍ងាយៗដើម្បីស្វែងរកទីតាំងខ្សែអក្សរជាក់លាក់នៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យដោយប្រើ VBA
សូមមើលឧទាហរណ៍សាមញ្ញមួយចំនួនដើម្បីទទួលបានទីតាំងនៃខ្សែអក្សរជាក់លាក់នៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យដោយប្រើ VBA .
1. VBA ដើម្បីស្វែងរកទីតាំងនៃអត្ថបទក្នុង String
ខាងក្រោមគឺជាឧទាហរណ៍នៃ InStr ដើម្បីស្វែងរក ទីតាំងនៃអត្ថបទក្នុងខ្សែអក្សរ។
- ចុច Alt + F11 នៅលើក្តារចុចរបស់អ្នក ឬចូលទៅកាន់ផ្ទាំង អ្នកអភិវឌ្ឍន៍ -> Visual Basic ដើម្បីបើក Visual Basic Editor ។
- នៅក្នុងបង្អួចកូដលេចឡើង ពីរបារម៉ឺនុយ ចុច បញ្ចូល -> ម៉ូឌុល ។
- ឥឡូវនេះនៅក្នុងបង្អួចកូដ សូមសរសេរកម្មវិធី InStr សាមញ្ញមួយនៅខាងក្នុង VBA Sub នីតិវិធី (សូមមើលខាងក្រោម)។
9105
ឥឡូវនេះលេខកូដរបស់អ្នករួចរាល់ដើម្បីដំណើរការហើយ។
- ចុច F5 នៅលើក្តារចុចរបស់អ្នក ឬពីរបារម៉ឺនុយជ្រើសរើស រត់ -> ដំណើរការទម្រង់រង/អ្នកប្រើប្រាស់ ។ អ្នកក៏អាចចុចលើ រូបតំណាង Play តូច នៅក្នុងរបារម៉ឺនុយរង ដើម្បីដំណើរការម៉ាក្រូ។
អ្នកនឹងឃើញថា ប្រអប់សារលេចឡើងនឹងផ្តល់ឱ្យអ្នកនូវលេខ ប្រកាសទីតាំង នៃអត្ថបទដែលអ្នកចង់ពិនិត្យ។
ការពន្យល់៖
ខ្សែអក្សរចម្បងរបស់យើង “ សុភមង្គល គឺជាជម្រើស ” គឺជាប្រយោគដែលមានអក្សរ 21 (មានដកឃ្លា) ហើយយើងចង់ស្វែងរកទីតាំងនៃអត្ថបទ “ choice ” នៅក្នុងខ្សែអក្សរនោះ។ អត្ថបទ “ choice ” បានចាប់ផ្តើមពីទីតាំងទី 16 នៃខ្សែអក្សរចម្បង ដូច្នេះយើងទទួលបានលេខ 16 ជាលទ្ធផលរបស់យើងនៅក្នុងប្រអប់សារ។
<២២> ២. VBA ដើម្បីស្វែងរកអត្ថបទពីទីតាំងជាក់លាក់មួយនៅក្នុង Stringឥឡូវនេះ ចូរយើងស្វែងយល់ថាតើនឹងមានអ្វីកើតឡើង ប្រសិនបើយើងចង់ទទួលបានតំណែងពីលេខជាក់លាក់មួយ។
- វិធីដូចគ្នា ពីមុន បើក Visual Basic Editor ពីផ្ទាំង Developer ហើយ Insert a Module នៅក្នុងបង្អួចកូដ។
- In បង្អួចកូដ សរសេរកម្មវិធី InStr សាមញ្ញដែលបានបង្ហាញខាងលើ ហើយហុចតម្លៃក្នុងអាគុយម៉ង់ចាប់ផ្តើមដោយយោងតាមទីតាំងដែលអ្នកចង់រាប់អត្ថបទរបស់អ្នក។
3672
- បន្ទាប់ រត់ លេខកូដ។
អ្នកនឹងឃើញថាប្រអប់សារលេចឡើងនឹង ផ្តល់ឱ្យអ្នកនូវ លេខដែលប្រកាសទីតាំង នៃអត្ថបទ ចាប់ផ្តើមពីទីតាំងជាក់លាក់មួយ ដែលអ្នកចង់ពិនិត្យ។
ការពន្យល់៖
ដូចដែលយើងបានដឹងរួចមកហើយ (ពីការពិភាក្សាដំណាក់កាលទី 1) ថាអត្ថបទ “ ជម្រើស ” បានចាប់ផ្តើមពីទីតាំងនៃ 16 ដូច្នេះយើងបានបញ្ចូល "ពីរ" ជម្រើស ” នៅក្នុងខ្សែអក្សរចម្បង ហើយកំណត់ 17 ជារបស់យើងប៉ារ៉ាម៉ែត្រទី 1 ដើម្បីរំលង “ ជម្រើស ” ដំបូង។ ដូច្នេះ យើង រត់ ម៉ាក្រូខាងលើ ហើយវាបង្ហាញយើងនូវលេខទីតាំង 27 ដែលជាលេខទីតាំងនៃ ទីពីរ “ ជម្រើស ” នៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យ។
3. VBA ដើម្បីស្វែងរកអត្ថបទដែលមានអនុគមន៍ InStr ដែលមិនប្រកាន់អក្សរតូចធំនៅក្នុងខ្សែអក្សរ
ពីការណែនាំនៃអនុគមន៍ InStr អ្នកដឹងរួចហើយថាតាមលំនាំដើម អនុគមន៍ InStr គឺប្រកាន់អក្សរតូចធំ។ ចូរយើងស្វែងរកវាជាមួយនឹងឧទាហរណ៍មួយ។
សូមមើលកូដ VBA ខាងក្រោម ដែលយើងចង់ស្វែងរកទីតាំងនៃពាក្យ “ ជម្រើស ” ជាមួយនឹង អក្សរធំ “C” ក្នុងខ្សែអក្សរ “ សុភមង្គលគឺជាជម្រើស ” ដែលជម្រើសត្រូវបានសរសេរដោយ តូច “c” .
- ដំណើរការ កូដ ហើយស្វែងរក 0 ជាលទ្ធផលរបស់យើង។
នោះដោយសារតែមុខងារ InStr ព្យាបាល រាជធានី “C” និង តូច “c” ខុសគ្នា។ ដូច្នេះ វាបានស្វែងរកពាក្យ “ Choice ” នៅក្នុងខ្សែអក្សរ ហើយមិនមានការផ្គូផ្គងណាមួយទេ ដូច្នេះបានត្រឡប់មកវិញ 0 ។
- ដើម្បីធ្វើឱ្យមុខងារ InStr case-insensitive កំណត់អាគុយម៉ង់ប្រៀបធៀបទៅជា vbTextCompare (សូមមើលខាងក្រោម)។
5772
- រត់ លេខកូដ។
អ្នកនឹងទទួលបាន ទីតាំងនៃអត្ថបទ ពីខ្សែអក្សរ ថាតើអត្ថបទត្រូវបានសរសេរជា អក្សរធំ ឬអក្សរតូច ។
4. VBA ដើម្បីស្វែងរកអត្ថបទពីខាងស្តាំនៃខ្សែអក្សរ
រហូតមកដល់ពេលនេះ មុខងារ InStr គ្រាន់តែផ្តល់ឱ្យយើងនូវទីតាំងពីផ្នែកខាងឆ្វេងនៃខ្សែអក្សរប៉ុណ្ណោះ។ ប៉ុន្តែចុះយ៉ាងណាបើអ្នកចង់ស្វែងរកទីតាំងអត្ថបទពីជ្រុងខាងស្តាំនៃខ្សែអក្សរ។
មុខងារ InStrRev ស្វែងរកពីខាងស្តាំ។ មុខងារ InStrRev ដំណើរការស្រដៀងនឹងមុខងារ InStr ហើយវានឹងរកឃើញអ្នកនូវទីតាំងនៃអត្ថបទពី ផ្នែកខាងស្តាំ នៃខ្សែអក្សរ។
សូមមើលឧទាហរណ៍ខាងក្រោមដើម្បីយល់ពីភាពខុសគ្នា។
- ប្រសិនបើយើងដំណើរការកូដខាងក្រោមជាមួយមុខងារ InStr នោះ
វាផ្តល់ឱ្យយើងនូវទីតាំង ( 16 ) នៃអត្ថបទដំបូង “ ជម្រើស ”។
- ប៉ុន្តែប្រសិនបើយើងដំណើរការកូដដូចគ្នាជាមួយនឹងមុខងារ InStrRev នោះ
វាផ្តល់ឱ្យយើងនូវមុខតំណែង ( 27 ) នៃអត្ថបទចុងក្រោយ “ ជម្រើស ”។
ការអានស្រដៀងគ្នា៖ >
5. VBA ដើម្បីស្វែងរកទីតាំងនៃតួអក្សរនៅក្នុងខ្សែអក្សរ
អ្នកក៏អាចស្វែងរកទីតាំងនៃតួអក្សរជាក់លាក់មួយនៅក្នុងខ្សែអក្សរតាមរបៀបដូចគ្នាដែលអ្នកបានរកឃើញអត្ថបទ។
- ចម្លង កូដខាងក្រោមចូលទៅក្នុងបង្អួចកូដ VBA របស់អ្នក
7013
- ហើយ ដំណើរការ ម៉ាក្រូ។
“ e ” ទីមួយនៅក្នុងខ្សែអក្សរដែលបានផ្តល់ឱ្យរបស់យើងគឺនៅលេខ 7 ទីតាំង។
6. VBA ដើម្បីស្វែងរកខ្សែអក្សររងក្នុង String
នៅទីនេះ យើងនឹងរៀនពីរបៀបស្វែងរកថាតើខ្សែអក្សរមាន substring ឬអត់។
ដើម្បីទទួលបានវា យើងមាន ដើម្បីដំណើរការ IF Statement នៅក្នុងកូដរបស់យើង។
- ដូចមុនដែរ បើក Visual Basic Editor ពីផ្ទាំង Developer ហើយ បញ្ចូល a ម៉ូឌុល នៅក្នុងបង្អួចកូដ។
- នៅក្នុងបង្អួចកូដ សូមចម្លងកូដខាងក្រោម ហើយបិទភ្ជាប់វា។
6972
របស់អ្នក ឥឡូវនេះលេខកូដរួចរាល់សម្រាប់ដំណើរការហើយ។
- រត់ ម៉ាក្រូ។
ប្រសិនបើ ខ្សែអក្សររបស់អ្នកមានខ្សែអក្សររង នោះអ្នកនឹងទទួលបាន ការផ្គូផ្គងដែលបានរកឃើញ បើមិនដូច្នេះទេ វានឹងត្រឡប់រកមិនឃើញការផ្គូផ្គងទេ។ ក្នុងឧទាហរណ៍របស់យើង យើងចង់ស្វែងយល់ថាតើខ្សែអក្សរចម្បងរបស់យើង “ សុភមង្គលគឺជាជម្រើស ” មានពាក្យ “ ជម្រើស ” ឬ ទេ។ ដូចដែលវាកើតឡើង យើងទទួលបានលទ្ធផល ការប្រកួតដែលបានរកឃើញ ។
7។ VBA ដើម្បីស្វែងរកខ្សែអក្សរក្នុងជួរក្រឡា
អ្នកអាចស្វែងរកអត្ថបទជាក់លាក់មួយក្នុងជួរក្រឡានៃខ្សែអក្សរ ហើយត្រឡប់ខ្សែអក្សរជាក់លាក់មួយ។
សូមមើលឧទាហរណ៍ខាងក្រោមដែលយើងនឹង ស្វែងរក “ វេជ្ជបណ្ឌិត ” ហើយនៅពេលដែលមានការប្រកួត វានឹងត្រឡប់ “ វេជ្ជបណ្ឌិត ”។
- ខាងក្រោមជាកូដដើម្បីទទួលបានលទ្ធផលដែលបានពិភាក្សាខាងលើ
4111
- ដំណើរការ កូដ ហើយលទ្ធផលត្រូវបានបង្ហាញខាងក្រោម
- អ្នកអាចកែប្រែម៉ាក្រូតាមតម្រូវការរបស់អ្នក។ ឧទាហរណ៍ប្រសិនបើអ្នកចង់បាន។ដើម្បីស្វែងរក “ Prof. ” នៅក្នុងក្រឡាណាមួយនៃខ្សែអក្សរ ហើយទទួលបាន “ Professor ” ជាការត្រឡប់មកវិញ បន្ទាប់មកគ្រាន់តែហុច “<1 Prof. ” ជាតម្លៃជំនួសឱ្យ “ Dr ”។ នៅក្នុងជួរទី 4 នៃម៉ាក្រូ និង “ សាស្រ្តាចារ្យ ” ជំនួសឱ្យ “ វេជ្ជបណ្ឌិត ” នៅក្នុងបន្ទាត់ទី 5 នៃម៉ាក្រូ ហើយកំណត់ ជួរក្រឡាតាមចំនួន។
8. VBA ដើម្បីស្វែងរកខ្សែអក្សរក្នុងក្រឡា
អ្នកក៏អាច ស្វែងរកអត្ថបទជាក់លាក់នៅក្នុងក្រឡាតែមួយនៃខ្សែអក្សរ ហើយត្រឡប់ខ្សែអក្សរជាក់លាក់មួយ។
- ចម្លងកូដខាងក្រោម ហើយបិទភ្ជាប់វាទៅក្នុងបង្អួចកូដ។
6035
វានឹងស្វែងរក “ Dr. " នៅក្នុង Cell B5 ហើយប្រសិនបើវារកឃើញការផ្គូផ្គង នោះត្រឡប់ “ Doctor ” នៅក្នុង Cell C5 ។
- អ្នកអាចកែប្រែម៉ាក្រូតាមតម្រូវការរបស់អ្នក។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់ស្វែងរក “ Prof. ” នៅក្នុងក្រឡាណាមួយនៃខ្សែអក្សរ ហើយទទួលបាន “ Professor ” ជាការត្រឡប់មកវិញ។ បន្ទាប់មកគ្រាន់តែហុច “ Prof. ” ជាតម្លៃជំនួសឱ្យ “ Dr ”។ នៅក្នុងជួរទី 2 នៃម៉ាក្រូ និង “ សាស្រ្តាចារ្យ ” ជំនួសឱ្យ “ វេជ្ជបណ្ឌិត ” នៅក្នុងជួរទី 3 នៃម៉ាក្រូ ហើយកំណត់ លេខយោងក្រឡាស្របតាម។
សេចក្តីសន្និដ្ឋាន
អត្ថបទនេះបង្ហាញអ្នកពីរបៀបស្វែងរកអត្ថបទមួយចំនួនក្នុងខ្សែអក្សរក្នុង Excel ដោយប្រើ ម៉ាក្រូ VBA ។ ខ្ញុំសង្ឃឹមថាអត្ថបទនេះមានប្រយោជន៍ច្រើនសម្រាប់អ្នក។ មានអារម្មណ៍សេរីក្នុងការសួរសំណួរណាមួយទាក់ទងនឹងប្រធានបទ។