របៀបប្រើមុខងារស្វែងរកក្នុង VBA (ឧទាហរណ៍ 6)

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

មុខងារសំខាន់បំផុតមួយ និងប្រើប្រាស់យ៉ាងទូលំទូលាយដែលយើងប្រើក្នុង កម្មវិធី Visual Basic (VBA) គឺមុខងារស្វែងរក។ នៅក្នុងអត្ថបទនេះ ខ្ញុំនឹងបង្ហាញអ្នកពីរបៀបដែលអ្នកអាចប្រើ មុខងារ FIND នៃ Excel ជាមួយនឹងឧទាហរណ៍ និងរូបភាពត្រឹមត្រូវ។

ទាញយកសៀវភៅលំហាត់អនុវត្ត

ស្វែងរកអនុគមន៍នៅក្នុង VBA ក្នុង Excel.xlsm

6 ឧទាហរណ៍រហ័សដើម្បីប្រើមុខងារ FIND នៅក្នុង VBA

នៅទីនេះយើងបាន បានទទួលសំណុំទិន្នន័យជាមួយ ឈ្មោះសៀវភៅ អ្នកនិពន្ធ និង តម្លៃ នៃសៀវភៅមួយចំនួននៃហាងសៀវភៅមួយដែលមានឈ្មោះថា Martin Bookstore។

ថ្ងៃនេះ គោលបំណងរបស់យើងគឺដើម្បីមើលប្រភេទផ្សេងៗនៃការប្រើប្រាស់ Find function នៃ VBA ពីសំណុំទិន្នន័យនេះ។

1. ប្រើមុខងារស្វែងរកក្នុង VBA ដោយគ្មានប៉ារ៉ាម៉ែត្រ

អ្នកអាចប្រើ មុខងារស្វែងរក នៃ VBA ដោយគ្មានប៉ារ៉ាម៉ែត្រ។

បន្ទាប់មកវា នឹងស្វែងរកតម្លៃជាក់លាក់មួយក្នុងជួរក្រឡាមួយ ហើយត្រឡប់ការផ្គូផ្គងដំបូងដែលវារកឃើញ។

តោះស្វែងរកឈ្មោះ “P. B. Shelly” នៅក្នុងជួរឈរ អ្នកនិពន្ធ ( C4:C13 )។

បន្ទាត់ដែលមាន មុខងារស្វែងរក នឹងមានៈ

Set cell = Range("C4:C17").Find("P. B. Shelly")

ពេញលេញ លេខកូដ VBA នឹងជា៖

លេខកូដ VBA៖

5280

លទ្ធផល៖

វាបង្កើត ម៉ាក្រូ ហៅថា ស្វែងរក ។ ប្រសិនបើអ្នកដំណើរការម៉ាក្រូ វានឹងត្រឡប់ $C$6 ដែលជាអាសយដ្ឋានក្រឡាដំបូងដែលមានឈ្មោះ P ។ B. Shelly .

អានបន្ថែម៖ ស្វែងរកក្នុងជួរជាមួយ VBA ក្នុងExcel៖ រួម​បញ្ចូល​ទាំង​ការ​ផ្គូផ្គង​ពិត​ប្រាកដ និង​ដោយ​ផ្នែក

2. អនុវត្តមុខងារស្វែងរកក្នុង VBA ជាមួយនឹងប៉ារ៉ាម៉ែត្របន្ទាប់ (ដើម្បីចាប់ផ្តើមស្វែងរកពីក្រឡាជាក់លាក់មួយ)

អ្នកអាចប្រើប៉ារ៉ាម៉ែត្រ បន្ទាប់ពី ជាមួយ មុខងារស្វែងរក នៅក្នុង VBA ។ បន្ទាប់មកវានឹងចាប់ផ្តើមស្វែងរកតម្លៃពីខាងក្រោមក្រឡាក្នុងជួរមួយ។

ឧទាហរណ៍ ចូរចាប់ផ្តើមស្វែងរកឈ្មោះ “P. B. Shelly” ពីក្រឡាខាងក្រោម C6

បន្ទាត់នៃកូដនឹងមាន៖

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

ហើយ កូដ VBA ពេញលេញនឹងមាន៖

កូដ VBA៖

1119

លទ្ធផល៖

វានឹងត្រឡប់ $C$13 ព្រោះវាចាប់ផ្តើមស្វែងរកពីក្រោមក្រឡា C6 , នោះមកពីក្រឡា C7 ។ ដូច្នេះវាទទួលបាន P ។ B. Shelly ក្នុងក្រឡា C13 ដំបូង។

អានបន្ថែម៖ របៀបស្វែងរកខ្សែអក្សរក្នុង ក្រឡាដោយប្រើ VBA ក្នុង Excel

3. ដំណើរការមុខងារស្វែងរកក្នុង VBA ជាមួយនឹងការរុំជុំវិញប៉ារ៉ាម៉ែត្របន្ទាប់ (ដើម្បីស្វែងរកតម្លៃក្នុងវិធីរាងជារង្វង់)

ប៉ារ៉ាម៉ែត្រ បន្ទាប់ពី ជាមួយ មុខងារស្វែងរក ស្វែងរកតម្លៃក្នុងវិធីរាងជារង្វង់

នោះគឺវាចាប់ផ្តើមស្វែងរកពីខាងក្រោមក្រឡាក្នុងជួរមួយ បញ្ចប់ការស្វែងរកក្នុងជួរ ហើយបន្ទាប់មកម្តងទៀតចាប់ផ្តើមពីកំពូលនៃជួរ។

ឧទាហរណ៍ ចូរចាប់ផ្តើមស្វែងរកឈ្មោះ “John Keats” ពីក្រឡាខាងក្រោម C8 ដោយប្រើប៉ារ៉ាម៉ែត្រ After

បន្ទាត់នៃ លេខកូដនឹងមាន៖

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

និងបំពេញ លេខកូដ VBA នឹងជា៖

កូដ VBA៖

8035

លទ្ធផល៖

វានឹងត្រឡប់ $C$7 ព្រោះវាចាប់ផ្តើមស្វែងរកពីខាងក្រោមក្រឡា C8 នោះមកពី ក្រឡា C9

វាមិនបានរកឃើញអ្វីទាំងអស់នៅលើក្រឡា C13 ដូច្នេះវាចាប់ផ្តើមម្តងទៀតពីក្រឡា C4 ហើយស្វែងរកមួយក្នុងក្រឡា C7 .

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

  • របៀបស្វែងរកខ្សែអក្សរជាមួយ VBA ក្នុង Excel (ឧទាហរណ៍ 8)
  • ស្វែងរកការផ្គូផ្គងពិតប្រាកដដោយប្រើ VBA ក្នុង Excel (5 វិធី)
  • របៀបស្វែងរក និងជំនួសដោយប្រើ VBA (11 វិធី)

4. ប្រើប្រាស់មុខងារស្វែងរកក្នុង VBA ជាមួយនឹងប៉ារ៉ាម៉ែត្រ LookAt (សម្រាប់ការផ្គូផ្គងជាក់លាក់ ឬដោយផ្នែក)

អ្នកអាចប្រើ មុខងារស្វែងរក ក្នុង VBA ជាមួយ LookAt ប៉ារ៉ាម៉ែត្រ។

ប្រើ LookAt = xlWhole សម្រាប់ ការផ្គូផ្គង ជាក់លាក់ និង LookAt=xlPart សម្រាប់ ផ្នែក ផ្គូផ្គង។

ឧទាហរណ៍ ចូរយើងព្យាយាមរកមើលថាតើមានសៀវភៅណាមួយដែលមានឈ្មោះ “Ode” នៅក្នុងជួរឈរ ឈ្មោះសៀវភៅ ( B4:B13 )។

ប្រសិនបើយើងប្រើ xlWhole នៅក្នុងបន្ទាត់នៃកូដ៖

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

លទ្ធផល​នឹង​បង្ហាញ​កំហុស​ព្រោះ​វា​នឹង​មិន​រក​ឃើញ​ការ​ផ្គូផ្គង ជាក់លាក់

ប៉ុន្តែ​ប្រសិន​បើ​អ្នក​ប្រើ៖

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

បន្ទាប់មកវានឹងត្រឡប់មកវិញ $B$9 ពីព្រោះមានសៀវភៅដែលមានឈ្មោះ “Ode” នៅក្នុងវានៅក្នុងក្រឡា B7 , Ode to the Nightingale។

ដូច្នេះលេខកូដពេញលេញសម្រាប់ការប្រកួត ផ្នែក គឺ៖

កូដ VBA៖

4915

5. ដំណើរការមុខងារស្វែងរកក្នុង VBA ជាមួយនឹងប៉ារ៉ាម៉ែត្រ SearchDirection (ដើម្បីបញ្ជាក់ទិសដៅនៃការស្វែងរក)

អ្នកក៏អាចប្រើ មុខងារស្វែងរក ក្នុង VBA ជាមួយ SearchDirection parameter។

ប្រើ SearchDirection = xlNext សម្រាប់ការស្វែងរកពី កំពូលទៅបាត

និង SearchDirection = xlPrevious សម្រាប់ការស្វែងរកពី ពីបាតទៅកំពូល

ឧទាហរណ៍ សូមព្យាយាមស្វែងរកអ្នកនិពន្ធ Elif Shafak នៅក្នុងជួរឈរ អ្នកនិពន្ធ ( C4:C13 )។

ប្រសិនបើយើងប្រើ xlNext នៅក្នុងបន្ទាត់នៃកូដ៖

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

បន្ទាប់មកវានឹងត្រឡប់ $C$5

ប៉ុន្តែប្រសិនបើអ្នកប្រើ៖

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

បន្ទាប់មកវានឹងត្រឡប់មកវិញ $C$11

ដូច្នេះលេខកូដពេញលេញសម្រាប់ការស្វែងរកចាប់ពី ពីបាតឡើងលើ គឺ៖

កូដ VBA៖

2868

6. ស្វែងរកអនុគមន៍នៅក្នុង VBA ជាមួយនឹងប៉ារ៉ាម៉ែត្រ MatchCase (សម្រាប់ការផ្គូផ្គង Case-Sensitive ឬ Insensitive)

ជាចុងក្រោយ អ្នកអាចប្រើ Find function ជាមួយប៉ារ៉ាម៉ែត្រ MatchCase

ប្រើ MatchCase = True សម្រាប់ case-sensitive match , និង MatchCase=False សម្រាប់ case-insensitive match។

ឧទាហរណ៍ ចូរយើងព្យាយាមស្វែងរកសៀវភៅ “mother” នៅក្នុងជួរឈរ Book Name ( B4:B13 )។

ប្រសិនបើយើងប្រើ True នៅក្នុងបន្ទាត់កូដ៖

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

លទ្ធផលនឹងបង្ហាញកំហុសព្រោះវានឹង' រកមិនឃើញទេ។ផ្គូផ្គង។

ប៉ុន្តែប្រសិនបើអ្នកប្រើ៖

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

បន្ទាប់មកវានឹងត្រឡប់មកវិញ $ B$9 ព្រោះមានសៀវភៅមួយក្បាលឈ្មោះ “Mother” នៅក្នុងក្រឡា B8

ដូច្នេះលេខកូដពេញលេញសម្រាប់ ការផ្គូផ្គង មិនប្រកាន់អក្សរតូចធំ គឺ៖

លេខកូដ VBA៖

1186

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

ដោយប្រើវិធីសាស្រ្តទាំងនេះ អ្នកអាចប្រើមុខងារស្វែងរកក្នុងកម្មវិធី Visual Basic ។ តើអ្នកមានសំណួរទេ? រីករាយក្នុងការសួរពួកយើង។

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