របៀបស្វែងរកខ្សែអក្សររងដោយប្រើ VBA (9 វិធី)

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

តារាង​មាតិកា

ប្រសិន​បើ​អ្នក​កំពុង​ស្វែង​រក​វិធី​ងាយ​ស្រួល​បំផុត​មួយ​ចំនួន​ដើម្បី​ស្វែង​រក​ខ្សែ​អក្សរ​រង​ដោយ​ប្រើ VBA នោះ​អ្នក​គឺ​ជា​កន្លែង​ដែល​ត្រឹមត្រូវ។ បន្ទាប់ពីឆ្លងកាត់អត្ថបទនេះ អ្នកនឹងអាចស្វែងរកទីតាំងនៃ substring ឬស្រង់ទិន្នន័យដោយប្រើ substring នេះ ឬផ្លាស់ប្តូរទម្រង់នៃ substring យ៉ាងងាយស្រួល។ តោះចូលទៅក្នុងអត្ថបទ។

ទាញយកសៀវភៅការងារ

មាតិកាគំរូ

9 វិធីដើម្បីស្វែងរកខ្សែអក្សររងដោយប្រើ VBA

នៅទីនេះ ខ្ញុំមានដូចខាងក្រោម តារាងទិន្នន័យដែលខ្ញុំនឹងបង្ហាញវិធីនៃការស្វែងរកខ្សែអក្សររងក្នុងខ្សែអក្សរដោយប្រើ VBA ។ ខ្ញុំក៏នឹងព្យាយាមបង្ហាញវិធីនៃការស្វែងរកខ្សែអក្សររងក្នុងខ្សែអក្សរចៃដន្យ។

ខ្ញុំបានអនុវត្តកិច្ចការនេះដោយប្រើកំណែ Microsoft Excel 365 អ្នកអាចប្រើកំណែផ្សេងទៀតតាមភាពងាយស្រួលរបស់អ្នក។

Method-1: ស្វែងរក Substring ក្នុង String ដោយប្រើ VBA

ប្រសិនបើអ្នកចង់ស្វែងរក Substring ដែលអ្នកចង់បានក្នុង String ដោយប្រើ VBA អ្នកអាចប្រើ មុខងារ InStr នៅក្នុងកូដ VBA។

Step-01 :

➤ចូលទៅកាន់ Developer Tab>> Visual Basic ជម្រើស

បន្ទាប់មក Visual Basic Editor នឹងបើកឡើង។

➤ចូលទៅកាន់ Insert Tab>> Module Option

បន្ទាប់ពីនោះ Module នឹងត្រូវបានបង្កើត។

Step-02 :

➤ សរសេរកូដខាងក្រោម

2298

នៅទីនេះ InStr(1, “ ខ្ញុំគិតថាដូច្នេះខ្ញុំជា”, “គិត”) នឹងត្រឡប់ទីតាំងនៃខ្សែអក្សររងនៃខ្សែអក្សរមួយ។ 1 គឺទីតាំងចាប់ផ្តើម “ ខ្ញុំគិតថា ដូច្នេះខ្ញុំជា” គឺជាខ្សែអក្សរដែលអ្នកនឹងស្វែងរកខ្សែអក្សររងដែលអ្នកចង់បាន ហើយ “គិត” គឺជាខ្សែអក្សររងដែលអ្នកចង់ស្វែងរក។ វាគឺតាមលំនាំដើមដែលប្រកាន់អក្សរតូចធំ ដូច្នេះសូមប្រយ័ត្នចំពោះករណីនៃខ្សែអក្សររងរបស់អ្នកដែលអ្នកចង់ស្វែងរក។

➤ចុច F5

លទ្ធផល

បន្ទាប់ពីនោះ អ្នកនឹងទទួលបាន ប្រអប់សារ ខាងក្រោមដែលមានទីតាំងនៃ “គិត” ខ្សែអក្សររង។

វិធីទី 2៖ ការស្វែងរកខ្សែអក្សររងដែលប្រកាន់អក្សរតូចធំនៅក្នុងខ្សែអក្សរ

ប្រសិនបើអ្នកចង់ស្វែងរកខ្សែអក្សររងដែលអ្នកចង់បាននៅក្នុងខ្សែអក្សរដោយមិនគិតពីករណីដោយប្រើ VBA នោះ សូមអនុវត្តតាមនេះ វិធីសាស្រ្ត។

Step-01 :

➤អនុវត្តតាម Step-01 of Method-1

6796

នៅទីនេះ vbTextCompare ត្រូវបានប្រើដើម្បីស្វែងរកខ្សែអក្សររងដែលមិនប្រកាន់អក្សរតូចធំ។

➤ចុច F5

លទ្ធផល

បន្ទាប់មក អ្នកនឹងទទួលបាន ប្រអប់សារ ខាងក្រោមដែលមានទីតាំងនៃ “គិត” ខ្សែអក្សររង។

អ្នកអាចធ្វើដូចគ្នាដោយប្រើកូដខាងក្រោម។

1857

នៅទីនេះ ជម្រើសប្រៀបធៀបអត្ថបទ នឹងរកឃើញខ្សែអក្សររងដែលមិនប្រកាន់អក្សរតូចធំ។

➤ ចុច F5

លទ្ធផល :

បន្ទាប់ អ្នកនឹង នឹងទទួលបាន ប្រអប់សារ ដែលមានទីតាំងនៃ “គិត” ខ្សែអក្សររង។

វិធីសាស្ត្រ-៣៖ ការប្រើប្រាស់មុខងារ InstrRev នៅក្នុង VBA

នៅទីនេះ ខ្ញុំនឹងបង្ហាញវិធីស្វែងរកខ្សែអក្សររងពីចុង astring។

Step-01 :

➤អនុវត្តតាម Step-01 of Method-1

7768

InStrRev នឹង​រក​ឃើញ​ខ្សែអក្សរ​រង​ពី​ផ្នែក​ខាងស្តាំ​ជំនួស​ឲ្យ​ផ្នែក​ខាងឆ្វេង។

➤ ចុច F5

លទ្ធផល

បន្ទាប់មក អ្នកនឹងទទួលបាន ប្រអប់សារ ខាងក្រោមដែលមានទីតាំងទីពីរ “ខ្ញុំ” ខ្សែអក្សររងពី ផ្នែកខាងស្តាំ។

វិធីទី 4៖ ស្វែងរកទីតាំងនៃខ្សែអក្សររងក្នុងខ្សែអក្សរក្នុងជួរទិន្នន័យ

ប្រសិនបើអ្នកចង់ស្វែងរកតួអក្សរពិសេស “@” នៅក្នុង លេខសម្គាល់អ៊ីមែល បន្ទាប់មកធ្វើតាមវិធីនេះ។ ខ្ញុំបានបន្ថែមនៅទីនេះ ជួរឈរទីតាំង សម្រាប់គោលបំណងនេះ។

ជំហាន-01 :

➤ធ្វើតាម Step-01 of Method-1

9465

វានឹងបង្កើតមុខងារមួយដែលមានឈ្មោះថា FindSubstring (អ្នកអាចប្រើឈ្មោះផ្សេងទៀត)

តម្លៃ គឺ​ជា​ការ​យោង​ក្រឡា​ដែល​មាន​ខ្សែ​អក្សរ ហើយ​វា​ត្រូវ​បាន​ប្រកាស​ថា​ជា Range

ជំហាន -02 :

➤ ជ្រើសរើសលទ្ធផល Cell E5

➤ វាយមុខងារខាងក្រោម (បង្កើតដោយ VBA )

=FindSubstring(D5)

D5 គឺជាក្រឡាដែលមានខ្សែអក្សរ។

➤ចុច បញ្ចូល

➤អូសចុះក្រោម Fill Handle Tool

លទ្ធផល :

បន្ទាប់​មក អ្នក​នឹង​ទទួល​បាន​តំណែង​តួអក្សរ​ពិសេស @” ក្នុង លេខ​សម្គាល់​អ៊ីមែល

<1

ការអានស្រដៀងគ្នា៖

  • របៀបស្វែងរកString in a cell using VBA in Excel (2 Methods)
  • FindNext using VBA in Excel (2 Examples)
  • របៀបស្វែងរក String ជាមួយ VBA ក្នុង Excel (ឧទាហរណ៍ 8)
  • VBA ស្វែងរកជួរចុងក្រោយក្នុង Excel (5 វិធី)

វិធីទី 5៖ ពិនិត្យខ្សែអក្សររងមួយចំនួននៅក្នុង String in a Range of Data

ឧបមាថា អ្នកចង់សរសេរ Pass Fail to correspond ទៅឈ្មោះសិស្សអាស្រ័យលើ លទ្ធផលជួរឈរ ដែល Pass Fail ត្រូវបានសរសេរក្នុងតង្កៀបមួយ។ ដើម្បីស្វែងរកខ្សែអក្សររងនេះនៅក្នុង ជួរឈរលទ្ធផល ហើយសរសេរវានៅក្នុងជួរឈរ Pass or fail អនុវត្តតាមវិធីនេះ។

ជំហាន-01 :

➤អនុវត្តតាម ជំហាន-01 នៃ វិធីសាស្រ្ត-1

2096

នៅទីនេះ ជួរក្រឡាគឺ C5:C10 ដែលជា ជួរឈរលទ្ធផល

InStr(cell.value, “Pass”) > 0 គឺជាលក្ខខណ្ឌដែលលេខធំជាងសូន្យ (នៅពេលដែលក្រឡាមាន “Pass” ) បន្ទាប់មកបន្ទាត់ខាងក្រោមនឹងបន្ត ហើយផ្តល់លទ្ធផលនៅក្នុងក្រឡាដែលនៅជាប់គ្នាជា បានឆ្លងកាត់ .

ប្រសិនបើលក្ខខណ្ឌក្លាយជាមិនពិត មានន័យថាក្រឡាមួយមិនមាន “Pass” ទេនោះបន្ទាត់ក្រោម Else នឹងប្រតិបត្តិ និងផ្តល់តម្លៃលទ្ធផលនៅក្នុង ក្រឡាជាប់គ្នាជា បានបរាជ័យ

រង្វិលជុំនេះនឹងបន្តសម្រាប់ក្រឡានីមួយៗ។

➤ចុច F5

លទ្ធផល :

បន្ទាប់មក អ្នកនឹងទទួលបានលទ្ធផលដូចខាងក្រោមនៅក្នុង Pass ឬបរាជ័យ column.

Method-6: ពិនិត្យខ្សែអក្សររងមួយចំនួននៅក្នុង String និងការស្រង់ទិន្នន័យ

ខ្ញុំនឹងបង្ហាញវិធីស្វែងរកសិស្សដែលមានឈ្មោះ Michael ក្នុង ជួរឈរឈ្មោះសិស្ស ហើយស្រង់ទិន្នន័យដែលត្រូវគ្នារបស់ពួកគេដោយប្រើ VBA នៅក្នុងវិធីនេះ។

ជំហាន-01 :

➤អនុវត្តតាម ជំហាន-01 នៃ វិធីសាស្រ្ត-1

2463

នៅទីនេះ ខ្ញុំបានប្រើ B100 ជា ជួរសន្លឹកសកម្ម ប៉ុន្តែអ្នកអាចប្រើជួរណាមួយតាមការប្រើប្រាស់របស់អ្នក។

InStr(1, Range("B" & i), "Michael") > 0 គឺជាលក្ខខណ្ឌសម្រាប់ពិនិត្យមើលថាតើក្រឡានៅក្នុង ជួរឈរ B មាន Michael

Range("E" & icount & ":G" & icount) គឺជាជួរដែលអ្នកចង់បានទិន្នន័យលទ្ធផលរបស់អ្នក ហើយ Range("B" & i & ":D" & i).value នឹងផ្តល់តម្លៃ ពីជួរឈរ B ទៅ D

➤ ចុច F5

លទ្ធផល :

បន្ទាប់ពីនោះ អ្នកនឹងទទួលបានទិន្នន័យដកស្រង់ខាងក្រោមសម្រាប់សិស្សដែលមានឈ្មោះ Michael

វិធីទី៧៖ ស្វែងរកខ្សែអក្សររងសម្រាប់ពាក្យ

ប្រសិនបើអ្នកចង់ស្វែងរកខ្សែអក្សររងជាពាក្យមួយ បន្ទាប់មកធ្វើតាម បន្ថយវិធីសាស្រ្តនេះ។

Step-01 :

➤អនុវត្តតាម Step-01 of Method-1

7698

វានឹងពិនិត្យមើលថាតើខ្សែអក្សរមាន គឺ ហើយបន្ទាប់មកទីតាំងរបស់វានឹងត្រូវបានផ្តល់ឱ្យ

➤ចុច F5

លទ្ធផល :

បន្ទាប់​មក អ្នក​នឹង​ទទួល​បាន​ប្រអប់​សារ​ខាង​ក្រោម​ដែល​បង្ហាញ ពាក្យ​ដែល​រក​ឃើញ​ក្នុង​ទីតាំង៖ 6 (ទីតាំង​នៃ is )។

អ្នកអាចសាកល្បងបាន។ចេញកូដនេះសម្រាប់ពាក្យដែលមិនមាននៅក្នុងខ្សែអក្សរ។

➤វាយកូដខាងក្រោម

4501

➤ចុច F5

លទ្ធផល :

បន្ទាប់​មក អ្នក​នឹង​ទទួល​បាន​ប្រអប់​សារ​ខាងក្រោម​ដែល​បង្ហាញ ពាក្យ​រក​មិន​ឃើញ

Method-8: ដោយប្រើមុខងារ Instr និង LEFT

នៅទីនេះ ខ្ញុំនឹងពន្យល់ពីវិធីស្វែងរកទីតាំងនៃ substring ក្នុង string ហើយស្រង់អត្ថបទមុន substring នេះដោយប្រើ VBA និង អនុគមន៍ខាងឆ្វេង

ជំហាន-01 :

➤អនុវត្តតាម ជំហាន-01 នៃ វិធីសាស្រ្ត-1

7202

j = InStr(txt, "is") គឺជាទីតាំងនៃខ្សែអក្សររង គឺ ហើយ Left(txt, j - 1) នឹងទាញយកខ្សែអក្សររងមុន is

➤ ចុច F5

លទ្ធផល :

បន្ទាប់មក អ្នកនឹងទទួលបានប្រអប់សារខាងក្រោមដែលបង្ហាញ នៅទីនេះ (អក្សររងមុន គឺ )។

Method-9: Bolding ខ្សែអក្សររងមួយចំនួននៅក្នុង String

អ្នកអាចដិតចំណាត់ថ្នាក់មុនពេលតង្កៀបនៅក្នុង លទ្ធផលជួរឈរ ដោយធ្វើតាមវិធីសាស្រ្តនេះ ឃ.

ជំហាន-01 :

➤អនុវត្តតាម ជំហាន-01 នៃ វិធីសាស្ត្រ- 1

8543

txt = InStr(1, Cell, "(") នឹងត្រឡប់ទីតាំងនៃតង្កៀបទីមួយ ហើយ Cell.Characters(1, txt - 1).Font.Bold នឹងបង្កើតខ្សែអក្សររងមុនតង្កៀបទីមួយ ដិត

ជំហាន-02 :

➤ ជ្រើសរើស ជួរលទ្ធផល

➤ ទៅ ទៅ អ្នកអភិវឌ្ឍន៍ Tab>> Macros ជម្រើស

បន្ទាប់មក ម៉ាក្រូ អ្នកជំនួយការនឹងលេចឡើង។

➤ជ្រើសរើស Boldingsubstring (ឈ្មោះកូដ VBA) ហើយបន្ទាប់មក រត់

លទ្ធផល :

បន្ទាប់ពីនោះ ថ្នាក់នៅក្នុង លទ្ធផល ជួរ នឹងប្រែជាដិត។

ផ្នែកអនុវត្តន៍

សម្រាប់ការអនុវត្តន៍ដោយខ្លួនឯង យើងបានផ្តល់ផ្នែក Practice ដូចខាងក្រោមនៅក្នុងសន្លឹកមួយដែលមានឈ្មោះថា Practice ។ សូមធ្វើវាដោយខ្លួនអ្នក។

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

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

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