តារាងមាតិកា
នៅក្នុងអត្ថបទនេះ ខ្ញុំនឹងបង្ហាញអ្នកពីរបៀបដែលអ្នកអាចហៅ Sub ពី Sub ឬ Function នៅក្នុង VBA ក្នុង Excel ។ អ្នកនឹងរៀនហៅ Sub ដោយមានឬគ្មានអាគុយម៉ង់ ក៏ដូចជា សាធារណៈ និង ឯកជន រង ។
របៀបហៅ Sub ក្នុង VBA ក្នុង Excel (Quick View)
ចំណាំ៖ នេះជា Sub ហៅថា Sub2 ហៅ Sub ហៅថា Sub1 ។
ទាញយកសៀវភៅលំហាត់អនុវត្ត
VBA Call Sub.xlsm
ទាញយកសៀវភៅអនុវត្តនេះ ដើម្បីអនុវត្តកិច្ចការ ខណៈពេលដែលអ្នកកំពុងអានអត្ថបទនេះ។
វិធី 4 យ៉ាងដើម្បីហៅ Sub ក្នុង VBA នៅក្នុង Excel
នៅទីនេះយើងមាន Sub នៅក្នុង VBA ដែលហៅថា Sub1 ។
ប្រសិនបើអ្នកដំណើរការ Sub1 អ្នកនឹងទទួលបានសារ “Sub1 is Run”
ថ្ងៃនេះ គោលបំណងរបស់យើងគឺដើម្បីស្វែងយល់ពីរបៀបដែលយើងអាចហៅវាថា Sub ពី Sub ឬ Function ផ្សេងទៀតតាមគ្រប់មធ្យោបាយដែលអាចធ្វើទៅបាន។
1. ហៅ Sub ដោយគ្មានអាគុយម៉ង់ពី Sub ផ្សេងទៀតនៅក្នុង VBA ក្នុង Excel
ដំបូង យើងនឹងហៅ Sub ដោយគ្មានអាគុយម៉ង់ពី Sub ផ្សេងទៀតនៅក្នុង VBA .
នៅទីនេះ Sub1 គឺជា Sub ដោយគ្មានអំណះអំណាង។
ឥឡូវនេះ យើងនឹងហៅទៅ Sub Sub1 ពី Sub មួយទៀតហៅថា Sub2 ។
ដើម្បីហៅ Sub Sub1 ពី Sub ផ្សេងទៀត អ្នកមាន ដើម្បីប្រើបន្ទាត់នៃកូដ៖
Sub1
ឬ
Call Sub1
ឥឡូវនេះ ប្រសិនបើអ្នក ដំណើរការ Sub2 , Sub1 នឹងត្រូវបានហៅ ហើយសារ “Sub1 is Run”។ នឹងត្រូវបានបង្ហាញ។
2. ហៅ Sub ដោយមានអាគុយម៉ង់ពី Sub ផ្សេងទៀតនៅក្នុង VBA ក្នុង Excel
ឥឡូវនេះយើងនឹងហៅ Sub ជាមួយនឹងអាគុយម៉ង់ពី Sub ផ្សេងទៀតនៅក្នុង VBA .
នៅទីនេះ យើងបានផ្លាស់ប្តូរ Sub Sub1 តាមរបៀបដែលវាមានអាគុយម៉ង់ហៅថា Input_Value ហើយនៅពេលណា ដំណើរការ បង្ហាញអាគុយម៉ង់នោះ។
ដើម្បីហៅវា Sub ពី Sub ( Sub2 ), យើងត្រូវប្រើបន្ទាត់នៃកូដ៖
Sub1(Input_Value)
ឬ
Call Sub1(Input_Value)
នៅទីនេះ យើងបានប្រើ៖
Call Sub1(10)
ឥឡូវនេះ នៅពេលដែលយើងនឹងដំណើរការ Sub2 Sub1 នឹងត្រូវបានហៅដោយបញ្ចូល 10 ហើយ 10 នឹងត្រូវបានបង្ហាញនៅក្នុង ប្រអប់សារ ។
ការអានស្រដៀងគ្នា៖
- របៀបត្រឡប់តម្លៃ នៅក្នុងអនុគមន៍ VBA (ទាំងតម្លៃអារេ និងមិនមែនអារេ)
- ប្រើអនុគមន៍ LCase ក្នុង VBA ក្នុង Excel (មាន 4 ឧទាហរណ៍)
- របៀប ប្រើមុខងារ VBA SPLIT ក្នុង Excel (ឧទាហរណ៍ 5)
- ប្រើមុខងារ TRIM ក្នុង VBA ក្នុង Excel (និយមន័យ + កូដ VBA)
៣. ហៅទូរសព្ទរងដោយ/គ្មានអាគុយម៉ង់ពីមុខងារដែលកំណត់ដោយអ្នកប្រើប្រាស់នៅក្នុង VBA ក្នុង Excel
អ្នកក៏អាចហៅ Sub ពី មុខងារកំណត់ដោយអ្នកប្រើប្រាស់ ក្នុង VBA ។
⧭ រងដោយគ្មានអាគុយម៉ង់
តោះហៅ Sub ដោយគ្មានអាគុយម៉ង់ជាមុនសិន .
នៅទីនេះយើងបានផ្លាស់ប្តូរម្តងទៀត Sub Sub1 ទៅមួយដោយគ្មានអាគុយម៉ង់។
ឥឡូវនេះយើងនឹងបង្កើត មុខងារ ដែលហៅថា Function1 ហើយហៅ Sub1 ពីមុខងារនោះ។
ដើម្បីហៅ Sub ពីមុខងារមួយ បន្ទាត់កូដដែលត្រូវប្រើគឺដូចគ្នា :
Sub1
ឬ
Call Sub1
ឥឡូវនេះ ប្រសិនបើអ្នកបញ្ចូល Function1 នៅក្នុងក្រឡាណាមួយនៃសន្លឹកកិច្ចការរបស់អ្នក Sub1 នឹងត្រូវបានហៅ ហើយ ប្រអប់សារ នឹងបង្ហាញ “Sub1 is Run” .
⧭ Sub with Arguments
អ្នកក៏អាចហៅទូរសព្ទទៅ Sub ជាមួយនឹងអាគុយម៉ង់ពី មុខងារកំណត់ដោយអ្នកប្រើប្រាស់ ក្នុង VBA ក្នុង Excel ។
នៅទីនេះ យើងបានផ្លាស់ប្តូរ Sub1 ទៅជាមួយដែលមានអាគុយម៉ង់ម្តងទៀត។
ឥឡូវនេះ យើងបានហៅ Sub1 ពី Function1 តាមបន្ទាត់នៃកូដ៖
Call Sub1(10)
ឥឡូវនេះប្រសិនបើយើងបញ្ចូល Function1 នៅក្នុងក្រឡាណាមួយនៃសន្លឹកកិច្ចការរបស់យើង វានឹងបង្ហាញ 10 នៅក្នុង ប្រអប់សារ ។
4 ។ ហៅទៅផ្នែករងឯកជនពីអនុ ឬមុខងារផ្សេងទៀតនៅក្នុង VBA ក្នុង Excel
រហូតមកដល់ពេលនេះ យើងបានហៅ អនុសាធារណៈ ពី អនុ ឬ មុខងារ ។ លើកនេះ យើងនឹងបង្ហាញពីរបៀបដែលអ្នកអាចហៅ Private Sub ពី Sub ឬ Function ក្នុង VBA ។
⧭ ការហៅទូរសព្ទពីអនុ៖
អ្នកអាចហៅទៅកាន់ អនុឯកជន ពី អនុ ផ្សេងទៀត ប្រសិនបើពួកគេ ពីរស្ថិតនៅក្នុងម៉ូឌុលដូចគ្នានៃបង្អួច VBA របស់អ្នក។
នៅទីនេះយើងបានផ្លាស់ប្តូរ Sub1 ទៅជា Private Sub ដោយបន្ថែមពាក្យ Private នៅក្នុងជួរទីមួយ។ ហើយបានហៅវាពី Sub2 ដែលស្ថិតនៅក្នុងម៉ូឌុលតែមួយ។
ឥឡូវនេះ ប្រសិនបើអ្នកដំណើរការ Sub2 អ្នកនឹងទទួលបាន ប្រអប់សារ បង្ហាញ 10 ។
⧭ ការហៅចេញពីមុខងារ៖
ដូចគ្នាសម្រាប់មុខងារ។ ដើម្បីហៅ អនុឯកជន ពី អនុគមន៍ ក្នុង VBA អនុ និង អនុគមន៍ ត្រូវតែនៅក្នុង ម៉ូឌុលដូចគ្នា។
នៅទីនេះ យើងបានបញ្ចូល អនុឯកជន អនុ1 និង អនុគមន៍ 1 នៅក្នុងម៉ូឌុលដូចគ្នា។
<0ឥឡូវនេះ ប្រសិនបើយើងបញ្ចូល Function1 នៅក្នុងក្រឡាណាមួយនៃសន្លឹកកិច្ចការរបស់យើង ប្រអប់សារ នឹងបង្ហាញ 10 ។
សេចក្តីសង្ខេប
នេះគឺជាសេចក្តីសង្ខេបនៃចំណុចទាំងអស់ដែលបានពិភាក្សាថ្ងៃនេះ៖
- អ្នកអាចហៅទូរស័ព្ទទៅ Sub ពី Sub ឬ មុខងារកំណត់ដោយអ្នកប្រើប្រាស់ ក្នុង VBA ដោយប្រើពាក្យ “Call” ជាមួយនឹងឈ្មោះ នៃ Sub ឬគ្រាន់តែដាក់ឈ្មោះរបស់ Sub ។
- ប្រសិនបើ Sub ដែលត្រូវហៅមាន argument អ្នកត្រូវហៅ Sub ជាមួយនឹងតម្លៃណាមួយនៃ argument ។
- ប្រសិនបើ Sub ដែលត្រូវហៅគឺត្រូវបានប្រកាសថាជា ឯកជន មួយ អ្នកត្រូវហៅវាពី Sub ឬ មុខងារ ផ្សេងទៀតនៃម៉ូឌុលដូចគ្នា។
សេចក្តីសន្និដ្ឋាន
ដោយប្រើវិធីសាស្រ្តទាំងនេះ, អ្នកអាចហៅ Sub ពី Sub ឬ Function ផ្សេងទៀត។ក្នុង VBA ក្នុង Excel ។ តើអ្នកមានសំណួរទេ? រីករាយក្នុងការសួរពួកយើង។