តារាងមាតិកា
មុខងារសំខាន់បំផុតមួយ និងប្រើប្រាស់យ៉ាងទូលំទូលាយដែលយើងប្រើក្នុង កម្មវិធី 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 ។ តើអ្នកមានសំណួរទេ? រីករាយក្នុងការសួរពួកយើង។