ប្រតិបត្តិករ VBA និងមុខងារភ្ជាប់មកជាមួយ

សេចក្តីថ្លែងការណ៍ Excel VBA

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

ប្រតិបត្តិករគណិតវិទ្យា

ប្រតិបត្តិករគណិតវិទ្យា VBA សំខាន់ៗត្រូវបានរាយក្នុងតារាងខាងក្រោម។

ជួរ​ឈរ​ខាង​ស្ដាំ​នៃ​តារាង​បង្ហាញ​លំនាំ​ដើម​ប្រតិបត្តិករ​លំនាំដើម​ក្នុង​អវត្ដមាន​នៃ​វង់ក្រចក។ ដោយការបន្ថែមវង់ក្រចកទៅកន្សោម អ្នកអាចផ្លាស់ប្តូរលំដាប់ដែលសេចក្តីថ្លែងការណ៍ VBA ត្រូវបានប្រតិបត្តិតាមដែលអ្នកចង់បាន។

ប្រតិបត្តិករសកម្មភាពអាទិភាព

(1 - ខ្ពស់បំផុត; 5 - ទាបបំផុត)

^ប្រតិបត្តិករនិទស្សន្ត1
*ប្រតិបត្តិករគុណ2
/ប្រតិបត្តិករផ្នែក2
ការបែងចែកដោយគ្មានសល់ - ផ្តល់លទ្ធផលនៃការបែងចែកចំនួនពីរដោយគ្មានសល់។ ឧទាហរណ៍, 74 នឹងត្រឡប់លទ្ធផល 13
ភាពក្លាហានប្រតិបត្តិករ Modulo (នៅសល់) - ត្រឡប់នៅសល់បន្ទាប់ពីចែកលេខពីរ។ ឧទាហរណ៍, ៨ ទល់នឹង ៣ នឹងត្រឡប់លទ្ធផល 2.4
+ប្រតិបត្តិករបន្ថែម5
-ប្រតិបត្តិករដក5

ប្រតិបត្តិករខ្សែអក្សរ

ប្រតិបត្តិករខ្សែអក្សរមូលដ្ឋាននៅក្នុង Excel VBA គឺជាប្រតិបត្តិករភ្ជាប់ & (បញ្ចូលគ្នា)៖

ប្រតិបត្តិករសកម្មភាព
&ប្រតិបត្តិករភ្ជាប់។ ឧទាហរណ៍ កន្សោម «A» & «B» នឹងត្រឡប់លទ្ធផល AB.

ប្រតិបត្តិករប្រៀបធៀប

ប្រតិបត្តិករ​ប្រៀបធៀប​ត្រូវ​បាន​ប្រើ​ដើម្បី​ប្រៀបធៀប​លេខ​ពីរ​ឬ​ខ្សែ​ហើយ​ត្រឡប់​តម្លៃ​ប៊ូលីន​នៃ​ប្រភេទ ប៊ូលីន (ត្រូវ​ឬ​ខុស)។ ប្រតិបត្តិករប្រៀបធៀប Excel VBA សំខាន់ៗត្រូវបានរាយក្នុងតារាងនេះ៖

ប្រតិបត្តិករសកម្មភាព
=ស្មើគ្នា
<>មិនស្មើ
<តិចជាង
>ព័ត៌មានបន្ថែម
<=តិចជាង ឬស្មើ
>=ធំជាង ឬស្មើ

ប្រតិបត្តិករឡូជីខល

សញ្ញាប្រមាណវិធីឡូជីខល ដូចជាសញ្ញាប្រមាណវិធីប្រៀបធៀប ត្រឡប់តម្លៃប៊ូលីននៃប្រភេទ ប៊ូលីន (ត្រូវ​ឬ​ខុស)។ ប្រតិបត្តិករឡូជីខលសំខាន់ៗនៃ Excel VBA ត្រូវបានរាយក្នុងតារាងខាងក្រោម៖

ប្រតិបត្តិករសកម្មភាព
និងប្រត្តិបត្តិការភ្ជាប់, ប្រតិបត្តិករឡូជីខល И. ឧទាហរណ៍ កន្សោម ក និង ខ និ​ឹ​ង​ត្រឡប់មកវិញ ជាការពិត, ប្រសិនបើ A и B ទាំងពីរគឺស្មើគ្នា ជាការពិតបើមិនដូច្នេះទេ ត្រឡប់មកវិញ មិនពិត.
Orប្រត្តិបត្តិការបំបែក, ប្រតិបត្តិករឡូជីខល OR. ឧទាហរណ៍ កន្សោម ក ឬ ខ និ​ឹ​ង​ត្រឡប់មកវិញ ជាការពិត, ប្រសិនបើ A or B គឺស្មើគ្នា ជាការពិត, ហើយនឹងត្រឡប់មកវិញ មិនពិត, ប្រសិនបើ A и B ទាំងពីរគឺស្មើគ្នា មិនពិត.
មិនមានប្រតិបត្តិការអវិជ្ជមាន ប្រតិបត្តិករឡូជីខល មិន. ឧទាហរណ៍ កន្សោម មិនមែន A និ​ឹ​ង​ត្រឡប់មកវិញ ជាការពិត, ប្រសិនបើ A ស្មើភាពគ្នា មិនពិតឬត្រឡប់មកវិញ មិនពិត, ប្រសិនបើ A ស្មើភាពគ្នា ជាការពិត.

តារាងខាងលើមិនរាយឈ្មោះប្រតិបត្តិករឡូជីខលទាំងអស់ដែលមាននៅក្នុង VBA ទេ។ បញ្ជីពេញលេញនៃប្រតិបត្តិករឡូជីខលអាចរកបាននៅមជ្ឈមណ្ឌលអ្នកអភិវឌ្ឍន៍ Visual Basic ។

មុខងារដែលភ្ជាប់មកជាមួយ

មានមុខងារភ្ជាប់មកជាមួយជាច្រើនដែលមាននៅក្នុង VBA ដែលអាចប្រើបាននៅពេលសរសេរកូដ។ ខាងក្រោមនេះ គឺជាប្រភេទមួយចំនួនដែលប្រើជាទូទៅបំផុត៖

មុខងារសកម្មភាព
Absត្រឡប់តម្លៃដាច់ខាតនៃលេខដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍:

  • Abs(-20) ត្រឡប់តម្លៃ 20;
  • Abs (20) ត្រឡប់តម្លៃ 20 ។
មុនគត្រឡប់​តួអក្សរ ANSI ដែល​ត្រូវ​នឹង​តម្លៃ​លេខ​នៃ​ប៉ារ៉ាម៉ែត្រ។

ឧទាហរណ៍:

  • Chr (10) ត្រឡប់ការបំបែកបន្ទាត់;
  • Chr (97) ត្រឡប់តួអក្សរមួយ។ a.
កាលបរិច្ឆេទត្រឡប់​កាលបរិច្ឆេទ​ប្រព័ន្ធ​បច្ចុប្បន្ន។
កាលបរិច្ឆេទបន្ថែមបន្ថែមចន្លោះពេលជាក់លាក់មួយទៅកាលបរិច្ឆេទដែលបានផ្តល់ឱ្យ។ វាក្យសម្ព័ន្ធមុខងារ៖

DateAdd(интервал, число, дата)

តើអាគុយម៉ង់នៅឯណា ចន្លោះពេល កំណត់ប្រភេទនៃចន្លោះពេលដែលបានបន្ថែមទៅដែលបានផ្តល់ឱ្យ កាលបរិច្ឆេទ ក្នុងចំនួនទឹកប្រាក់ដែលបានបញ្ជាក់នៅក្នុងអាគុយម៉ង់ លេខ.

អាគុយម៉ង់ ចន្លោះពេល អាចយកតម្លៃមួយក្នុងចំណោមតម្លៃខាងក្រោម៖

ចន្លោះពេលតម្លៃ
យីឆ្នាំ
qត្រីមាស
mខែ
yថ្ងៃនៃឆ្នាំ
dថ្ងៃ
wថ្ងៃនៃសប្តាហ៍
wwចុងសប្តាហ៍
hម៉ោង
nនាទី
sជាលើកទីពីរ

ឧទាហរណ៍:

  • DateAdd(«d», 32, «01/01/2015») បន្ថែម 32 ថ្ងៃទៅកាលបរិច្ឆេទ 01/01/2015 ហើយដូច្នេះត្រឡប់កាលបរិច្ឆេទ 02/02/2015 ។
  • កាលបរិច្ឆេទបន្ថែម(«ww», 36, «01/01/2015») បន្ថែម 36 សប្តាហ៍ទៅកាលបរិច្ឆេទ 01/01/2015 ហើយត្រឡប់កាលបរិច្ឆេទ 09/09/2015 ។
កាលបរិច្ឆេទDiffគណនា​ចំនួន​ចន្លោះ​ពេល​វេលា​ដែល​បាន​បញ្ជាក់​រវាង​កាលបរិច្ឆេទ​ដែល​បាន​ផ្តល់​ឱ្យ​ពីរ។

ឧទាហរណ៍:

  • DateDiff(«d», «01/01/2015», «02/02/2015») គណនាចំនួនថ្ងៃរវាង 01/01/2015 និង 02/02/2015 ត្រឡប់ 32។
  • DateDiff(«ww», «01/01/2015», «03/03/2016») គណនាចំនួនសប្តាហ៍រវាង 01/01/2015 និង 03/03/2016 ត្រឡប់ 61។
ទិវាត្រឡប់ចំនួនគត់ដែលត្រូវនឹងថ្ងៃនៃខែនៅក្នុងកាលបរិច្ឆេទដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍: ថ្ងៃ(«29/01/2015») ត្រឡប់លេខ 29 ។

ម៉ោងត្រឡប់ចំនួនគត់ដែលត្រូវគ្នានឹងចំនួនម៉ោងនៅពេលវេលាដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍: ម៉ោង (« 22:45:00») ត្រឡប់លេខ 22 ។

InStrវាយកចំនួនគត់ និងខ្សែពីរជាអាគុយម៉ង់។ ត្រឡប់​ទីតាំង​នៃ​ការ​កើតឡើង​នៃ​ជួរ​ទីពីរ​ក្នុង​ជួរ​ទីមួយ ដោយ​ចាប់​ផ្តើម​ការ​ស្វែងរក​នៅ​ទីតាំង​ដែល​បាន​ផ្តល់​ឱ្យ​ដោយ​ចំនួន​គត់។

ឧទាហរណ៍:

  • InStr (1, "នេះគឺជាពាក្យស្វែងរក", "ពាក្យ") ត្រឡប់លេខ 13 ។
  • InStr(14, "នេះគឺជាពាក្យស្វែងរក ហើយនេះគឺជាពាក្យស្វែងរកមួយផ្សេងទៀត", "ពាក្យ") ត្រឡប់លេខ 38 ។

ចំណាំ: អាគុយម៉ង់លេខអាចមិនត្រូវបានបញ្ជាក់ទេ ក្នុងករណីនេះការស្វែងរកចាប់ផ្តើមពីតួអក្សរទីមួយនៃខ្សែអក្សរដែលបានបញ្ជាក់នៅក្នុងអាគុយម៉ង់ទីពីរនៃអនុគមន៍។

Intត្រឡប់ផ្នែកចំនួនគត់នៃលេខដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍: Int(5.79) លទ្ធផលត្រឡប់មកវិញ 5.

កាលបរិច្ឆេទត្រឡប់ ជាការពិតប្រសិនបើតម្លៃដែលបានផ្តល់ឱ្យគឺជាកាលបរិច្ឆេទ ឬ មិនពិត - ប្រសិនបើកាលបរិច្ឆេទមិនមាន។

ឧទាហរណ៍:

  • IsDate(«01/01/2015») ត្រឡប់ ជាការពិត;
  • កាលបរិច្ឆេទ (100) ត្រឡប់ មិនពិត.
កំហុសត្រឡប់ ជាការពិតប្រសិនបើតម្លៃដែលបានផ្តល់គឺជាកំហុស ឬ មិនពិត - ប្រសិនបើវាមិនមែនជាកំហុស។
បាត់ឈ្មោះ​នៃ​អាគុយម៉ង់​នីតិវិធី​ជា​ជម្រើស​ត្រូវ​បាន​ហុច​ជា​អាគុយម៉ង់​ទៅ​មុខងារ។ បាត់ ត្រឡប់ ជាការពិតប្រសិនបើគ្មានតម្លៃត្រូវបានអនុម័តសម្រាប់អាគុយម៉ង់នីតិវិធីនៅក្នុងសំណួរ។
ជាលេខត្រឡប់ ជាការពិតប្រសិនបើតម្លៃដែលបានផ្តល់ឱ្យអាចត្រូវបានចាត់ទុកជាលេខ បើមិនដូច្នេះទេនឹងត្រឡប់មកវិញ មិនពិត.
ខាងឆ្វេងត្រឡប់​ចំនួន​តួ​អក្សរ​ដែល​បាន​បញ្ជាក់​ពី​ដើម​ខ្សែ​អក្សរ​ដែល​បាន​ផ្ដល់។ វាក្យសម្ព័ន្ធមុខងារគឺដូចនេះ៖

Left(строка, длина)

ដែលជាកន្លែងដែល បន្ទាត់ គឺជាខ្សែអក្សរដើម និង ប្រវែង គឺ​ជា​ចំនួន​តួអក្សរ​ដែល​ត្រូវ​ត្រឡប់​វិញ ដោយ​រាប់​ចាប់​ពី​ដើម​ខ្សែអក្សរ។

ឧទាហរណ៍:

  • ឆ្វេង(“abvgdejziklmn”, ៤) ត្រឡប់​ខ្សែអក្សរ “abcg”;
  • ឆ្វេង(“abvgdejziklmn”, ៤) ត្រឡប់ខ្សែអក្សរ "a" ។
ឡែនត្រឡប់ចំនួនតួអក្សរក្នុងខ្សែអក្សរមួយ។

ឧទាហរណ៍: Len ("abcdej") ត្រឡប់លេខ 7 ។

ខែត្រឡប់ចំនួនគត់ដែលត្រូវនឹងខែនៃកាលបរិច្ឆេទដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍: ខែ(«29/01/2015») ត្រឡប់តម្លៃ 1 ។

ពាក់​ក​ណ្តា​លត្រឡប់ចំនួនតួអក្សរដែលបានបញ្ជាក់ពីពាក់កណ្តាលនៃខ្សែអក្សរដែលបានផ្តល់ឱ្យ។ វាក្យសម្ព័ន្ធមុខងារ៖

ពាក់​ក​ណ្តា​ល(បន្ទាត់, ការចាប់ផ្តើម, ប្រវែង)

ដែលជាកន្លែងដែល បន្ទាត់ គឺជាខ្សែអក្សរដើម ការចាប់ផ្តើម - ទីតាំងនៃការចាប់ផ្តើមនៃខ្សែអក្សរដែលត្រូវស្រង់ចេញ ប្រវែង គឺជាចំនួនតួអក្សរដែលត្រូវស្រង់ចេញ។

ឧទាហរណ៍:

  • ពាក់កណ្តាល(“abvgdejziklmn”, ៤, ៥) ត្រឡប់ខ្សែអក្សរ "កន្លែងណា";
  • ពាក់កណ្តាល(“abvgdejziklmn”, ៤, ៥) ត្រឡប់​ខ្សែអក្សរ “cl” ។
នាទីត្រឡប់ចំនួនគត់ដែលត្រូវនឹងចំនួននាទីនៅក្នុងពេលវេលាដែលបានផ្តល់ឱ្យ។ ឧទាហរណ៍៖ នាទី(«22:45:15») ត្រឡប់តម្លៃ 45 ។
ឥឡូវ​នេះត្រឡប់កាលបរិច្ឆេទ និងពេលវេលាប្រព័ន្ធបច្ចុប្បន្ន។
ស្តាំត្រឡប់ចំនួនតួអក្សរដែលបានបញ្ជាក់ពីចុងបញ្ចប់នៃខ្សែអក្សរដែលបានផ្តល់ឱ្យ។ វាក្យសម្ព័ន្ធមុខងារ៖

ស្តាំ (បន្ទាត់, ប្រវែង)

ដែលជាកន្លែងដែល បន្ទាត់ គឺជាខ្សែអក្សរដើម និង ប្រវែង គឺ​ជា​ចំនួន​តួ​អក្សរ​ដែល​ត្រូវ​ដក​ចេញ ដោយ​រាប់​ពី​ចុង​ខ្សែ​អក្សរ​ដែល​បាន​ផ្ដល់។

ឧទាហរណ៍:

  • ស្ដាំ(«abvgdezhziklmn», ៤) ត្រឡប់​ខ្សែអក្សរ “clmn”;
  • ស្ដាំ(«abvgdezhziklmn», ៤) ត្រឡប់​ខ្សែអក្សរ “n” ។
ជាលើកទីពីរត្រឡប់ចំនួនគត់ដែលត្រូវនឹងចំនួនវិនាទីនៅក្នុងពេលវេលាដែលបានផ្តល់ឱ្យ។

ឧទាហរណ៍: ទីពីរ («២២:៤៥:១៥») ត្រឡប់តម្លៃ 15 ។

ការ៉េត្រឡប់​ឫស​ការ៉េ​នៃ​តម្លៃ​លេខ​ដែល​បាន​ឆ្លង​ក្នុង​អាគុយម៉ង់។

ឧទាហរណ៍:

  • ការ៉េ(4) ត្រឡប់តម្លៃ 2;
  • ការ៉េ(16) ត្រឡប់តម្លៃ 4 ។
ពេលវេលាត្រឡប់ម៉ោងប្រព័ន្ធបច្ចុប្បន្ន។
Uboundត្រឡប់​អក្សរធំ​នៃ​ទំហំ​អារេ​ដែល​បាន​បញ្ជាក់។

ចំណាំ: សម្រាប់អារេពហុវិមាត្រ អាគុយម៉ង់ស្រេចចិត្តអាចជាលិបិក្រមនៃវិមាត្រដែលត្រូវត្រឡប់។ ប្រសិនបើមិនបានបញ្ជាក់ទេ លំនាំដើមគឺ 1 ។

ឆ្នាំត្រឡប់ចំនួនគត់ដែលត្រូវនឹងឆ្នាំនៃកាលបរិច្ឆេទដែលបានផ្តល់ឱ្យ។ ឧទាហរណ៍៖ ឆ្នាំ(«29/01/2015») ត្រឡប់តម្លៃ 2015 ។

បញ្ជីនេះរួមបញ្ចូលតែជម្រើសនៃមុខងារ Excel Visual Basic ដែលមានស្រាប់ដែលប្រើជាទូទៅបំផុត។ បញ្ជីពេញលេញនៃមុខងារ VBA ដែលមានសម្រាប់ប្រើក្នុងម៉ាក្រូ Excel អាចរកបាននៅលើ Visual Basic Developer Center។

សូមផ្ដល់យោបល់