អថេរ និងថេរនៅក្នុង VBA

នៅក្នុង VBA ដូចនៅក្នុងភាសាសរសេរកម្មវិធីផ្សេងទៀត អថេរ និងថេរត្រូវបានប្រើដើម្បីរក្សាទុកតម្លៃណាមួយ។ ដូចដែលឈ្មោះបង្កប់ន័យ អថេរអាចផ្លាស់ប្តូរ ខណៈពេលដែលថេររក្សាទុកតម្លៃថេរ។

ឧទាហរណ៍ថេរ Pi រក្សាទុកតម្លៃ 3,14159265… លេខ “Pi” នឹងមិនផ្លាស់ប្តូរកំឡុងពេលដំណើរការកម្មវិធីនោះទេ ប៉ុន្តែវានៅតែងាយស្រួលជាងក្នុងការរក្សាទុកតម្លៃបែបនេះជាថេរ។

ក្នុងពេលជាមួយគ្នានេះយើងអាចប្រើអថេរ sVAT_អត្រា ដើម្បីរក្សាទុកអត្រាពន្ធលើតម្លៃបន្ថែមលើទំនិញដែលបានទិញ។ តម្លៃអថេរ sVAT_អត្រា អាចប្រែប្រួលអាស្រ័យលើផលិតផលដែលបានទិញ។

ប្រភេទទិន្នន័យ

អថេរ និងថេរទាំងអស់គឺជាប្រភេទទិន្នន័យជាក់លាក់មួយ។ តារាងខាងក្រោមរាយបញ្ជីប្រភេទទិន្នន័យដែលបានប្រើនៅក្នុង VBA ជាមួយនឹងការពិពណ៌នា និងជួរនៃតម្លៃដែលអាចធ្វើបាន៖

ប្រភេទ​ទិន្នន័យ ទំហំការពិពណ៌នាជួរនៃតម្លៃ
បៃ1 បៃចំនួន​គត់​វិជ្ជមាន; ជាញឹកញាប់ត្រូវបានប្រើសម្រាប់ទិន្នន័យគោលពីរពី 0 ទៅ 255
ប៊ូលីន2 បៃអាច​ពិត​ឬ​មិន​ពិតត្រូវ​ឬ​ខុស
លេខគត់2 បៃលេខទាំងមូល (គ្មានផ្នែកប្រភាគ)ពី -32 ទៅ +768
ឡុង4 បៃចំនួនគត់ធំ (គ្មានផ្នែកប្រភាគ)от -2 147 483 648 до +2 147 483 647
នៅលីវ4 បៃលេខចំណុចអណ្តែតទឹកភាពជាក់លាក់តែមួយពី -3.4e38 ដល់ +3.4e38
ទ្វេរដង8 បៃលេខចំណុចអណ្តែតទឹកភាពជាក់លាក់ទ្វេដងពី -1.8e308 ដល់ +1.8e308
រូបិយប័ណ្ណ8 បៃលេខចំណុចអណ្តែត ដោយមានលេខថេរនៃខ្ទង់ទសភាគот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
កាលបរិច្ឆេទ8 បៃកាលបរិច្ឆេទ និងពេលវេលា - ទិន្នន័យប្រភេទកាលបរិច្ឆេទត្រូវបានតំណាងដោយលេខចំណុចអណ្តែត។ ផ្នែកចំនួនគត់នៃលេខនេះបង្ហាញពីកាលបរិច្ឆេទ ហើយផ្នែកប្រភាគបង្ហាញពីពេលវេលា។ចាប់ពីថ្ងៃទី 1 ខែមករា ឆ្នាំ 100 ដល់ថ្ងៃទី 31 ខែធ្នូ ឆ្នាំ 9999
វត្ថុ4 បៃឯកសារយោងវត្ថុវត្ថុយោងណាមួយ។
ខ្សែអក្សរកំពុងផ្លាស់ប្តូរសំណុំតួអក្សរ។ ប្រភេទ String អាចមានប្រវែងថេរ ឬអថេរ។ ច្រើនប្រើជាទូទៅជាមួយប្រវែងអថេរប្រវែងថេរ - រហូតដល់ប្រហែល 65 តួអក្សរ។ ប្រវែងអថេរ - រហូតដល់ប្រហែល 500 ពាន់លានតួអក្សរ
វ៉ារ្យ៉ង់កំពុងផ្លាស់ប្តូរអាចមានកាលបរិច្ឆេទ បណ្តែត ឬខ្សែអក្សរ។ ប្រភេទនេះត្រូវបានប្រើក្នុងករណីដែលវាមិនត្រូវបានគេដឹងជាមុនថាតើទិន្នន័យប្រភេទណានឹងត្រូវបានបញ្ចូល។លេខ - ទ្វេ, ខ្សែអក្សរ - ខ្សែអក្សរ

ជាក់ស្តែង ដោយប្រើតារាងខាងលើ និងជ្រើសរើសប្រភេទទិន្នន័យត្រឹមត្រូវ អ្នកអាចប្រើអង្គចងចាំបានកាន់តែសន្សំសំចៃ (ឧទាហរណ៍ ជ្រើសរើសប្រភេទទិន្នន័យ លេខគត់ ជំនួស ឡុង or នៅលីវ ជំនួស ទ្វេរដង) ទោះជាយ៉ាងណាក៏ដោយ នៅពេលប្រើប្រភេទទិន្នន័យបង្រួមកាន់តែច្រើន អ្នកត្រូវប្រុងប្រយ័ត្នថាកូដរបស់អ្នកមិនព្យាយាមឱ្យសមនឹងតម្លៃធំមិនសមាមាត្រទៅក្នុងពួកវាទេ។

ប្រកាសអថេរ និងថេរ

កំណត់ចំណាំរបស់អ្នកបកប្រែ៖ និយាយអំពីអថេរនៅក្នុង VBA វាមានតម្លៃនិយាយអំពីចំណុចសំខាន់មួយទៀត។ ប្រសិន​បើ​យើង​ប្រកាស​អថេរ​មួយ ប៉ុន្តែ​មិន​បាន​កំណត់​តម្លៃ​ណាមួយ​ទៅ​វា​ទេ នោះ​វា​ត្រូវ​បាន​កំណត់​ដំបូង​ដោយ​តម្លៃ​លំនាំដើម៖

• ខ្សែអក្សរត្រូវបានចាប់ផ្តើមជាមួយខ្សែអក្សរទទេ។

• លេខ — តម្លៃ 0;

• ប្រភេទអថេរ ប៊ូលីន - មិនពិត;

• កាលបរិច្ឆេទ – ថ្ងៃទី 30 ខែធ្នូ ឆ្នាំ 1899។

មុនពេលអថេរ ឬថេរអាចត្រូវបានប្រើ វាត្រូវតែត្រូវបានប្រកាស។ ដើម្បី​ធ្វើ​ដូច្នេះ សូម​បន្ថែម​បន្ទាត់​កូដ​សាមញ្ញ​ខាងក្រោម​ទៅ​ម៉ាក្រូ៖

Dim Имя_Переменной As Тип_Данных

នៅក្នុងបន្ទាត់នៃកូដខាងលើ ឈ្មោះអថេរ គឺ​ជា​ឈ្មោះ​នៃ​អថេរ​ដែល​នឹង​ត្រូវ​ប្រើ​ក្នុង​កូដ និង ប្រភេទ​ទិន្នន័យ គឺ​ជា​ប្រភេទ​ទិន្នន័យ​មួយ​ពី​តារាង​ដែល​បាន​ផ្តល់​ឱ្យ​មុន​បន្តិច​ក្នុង​អត្ថបទ​នេះ។ ឧទាហរណ៍:

Dim sVAT_Rate As Single Dim i As Integer

ថេរ​ត្រូវ​បាន​ប្រកាស​ស្រដៀង​គ្នា ប៉ុន្តែ​នៅ​ពេល​ប្រកាស​ថេរ តម្លៃ​របស់​វា​ត្រូវ​តែ​បង្ហាញ​ភ្លាម។ ឧទាហរណ៍ដូចនេះ៖

Const iMaxCount = 5000 Const iMaxScore = 100

វាមិនចាំបាច់ក្នុងការប្រកាសអថេរក្នុង Excel ទេ។ តាមលំនាំដើម រាល់អថេរដែលបានបញ្ចូល ប៉ុន្តែមិនបានប្រកាសនៅក្នុង Excel នឹងមានប្រភេទ វ៉ារ្យ៉ង់ ហើយនឹងអាចទទួលយកបានទាំងតម្លៃលេខ និងអក្សរ។

ដូច្នេះ អ្នកសរសេរកម្មវិធីអាចប្រើអថេរថ្មីបានគ្រប់ពេល (ទោះបីជាវាមិនត្រូវបានប្រកាសក៏ដោយ) ហើយ Excel នឹងចាត់ទុកវាជាអថេរនៃប្រភេទ។ វ៉ារ្យ៉ង់. ទោះយ៉ាងណាក៏ដោយ មានហេតុផលមួយចំនួនដែលមិនគួរធ្វើ៖

  1. ការប្រើប្រាស់អង្គចងចាំ និងល្បឿនគណនា។ ប្រសិន​បើ​អ្នក​មិន​ប្រកាស​អថេរ​ដែល​មាន​ការ​ចង្អុល​បង្ហាញ​អំពី​ប្រភេទ​ទិន្នន័យ​នោះ តាម​លំនាំដើម វា​នឹង​ត្រូវ​បាន​កំណត់​ទៅ​ប្រភេទ វ៉ារ្យ៉ង់. ប្រភេទទិន្នន័យនេះប្រើអង្គចងចាំច្រើនជាងប្រភេទទិន្នន័យផ្សេងទៀត។ បៃបន្ថែមពីរបីក្នុងមួយអថេរអាចស្តាប់ទៅមិនច្រើន ប៉ុន្តែនៅក្នុងការអនុវត្តកម្មវិធីអាចមានអថេររាប់ពាន់ (ជាពិសេសនៅពេលធ្វើការជាមួយអារេ)។ ដូច្នេះអង្គចងចាំបន្ថែមដែលប្រើដោយអថេរដូចជា វ៉ារ្យ៉ង់បើប្រៀបធៀបទៅនឹងអថេរនៃប្រភេទ លេខគត់ or នៅលីវ, អាចបន្ថែមរហូតដល់ចំនួនដ៏សំខាន់។ លើសពីនេះទៀតប្រតិបត្តិការជាមួយអថេរនៃប្រភេទ វ៉ារ្យ៉ង់ ត្រូវ​បាន​ប្រតិបត្តិ​យឺត​ជាង​អថេរ​នៃ​ប្រភេទ​ផ្សេង​ទៀត រៀង​ខ្លួន​អថេរ​បន្ថែម​មួយ​ពាន់​ប្រភេទ វ៉ារ្យ៉ង់ អាច​បន្ថយ​ល្បឿន​ការ​គណនា​យ៉ាង​ខ្លាំង។
  2. ការការពារការវាយអក្សរនៅក្នុងឈ្មោះអថេរ។ ប្រសិនបើអថេរទាំងអស់ត្រូវបានប្រកាស នោះសេចក្តីថ្លែងការណ៍ VBA អាចត្រូវបានប្រើ − ជម្រើសច្បាស់លាស់ (យើងនឹងនិយាយអំពីវានៅពេលក្រោយ) ដើម្បីកំណត់អត្តសញ្ញាណអថេរដែលមិនបានប្រកាសទាំងអស់។ វាលុបបំបាត់ការលេចឡើងនៃកំហុសនៅក្នុងកម្មវិធីដែលជាលទ្ធផលនៃឈ្មោះអថេរដែលបានសរសេរមិនត្រឹមត្រូវ។ ឧទាហរណ៍ដោយប្រើអថេរដែលមានឈ្មោះ sVAT_អត្រាអ្នកអាចធ្វើការវាយអក្សរ ហើយកំណត់តម្លៃទៅអថេរនេះ សរសេរថា “VATRate = 0,175”។ គេរំពឹងថាចាប់ពីពេលនេះតទៅអថេរ sVAT_អត្រា គួរតែមានតម្លៃ 0,175 - ប៉ុន្តែជាការពិតវាមិនមែនទេ។ ប្រសិនបើរបៀបនៃការប្រកាសជាកាតព្វកិច្ចនៃអថេរដែលបានប្រើទាំងអស់ត្រូវបានបើក នោះកម្មវិធីចងក្រង VBA នឹងបង្ហាញកំហុសភ្លាមៗ ព្រោះវានឹងមិនស្វែងរកអថេរនោះទេ។ VATRate ក្នុងចំណោមអ្នកដែលបានប្រកាស។
  3. ការបន្លិចតម្លៃដែលមិនត្រូវគ្នានឹងប្រភេទដែលបានប្រកាសនៃអថេរមួយ។ ប្រសិនបើអ្នកប្រកាសអថេរនៃប្រភេទជាក់លាក់មួយ ហើយព្យាយាមកំណត់ទិន្នន័យនៃប្រភេទផ្សេងទៅវា អ្នកនឹងទទួលបាន error ដែលប្រសិនបើទុកចោលដោយមិនបានកែតម្រូវ អាចបណ្តាលឱ្យកម្មវិធីគាំង។ នៅ glance ដំបូង វាហាក់ដូចជាហេតុផលដ៏ល្អមួយដែលមិនប្រកាសអថេរ ប៉ុន្តែការពិត វាបង្ហាញថាអថេរមួយក្នុងចំណោមអថេរបានទទួលទិន្នន័យខុសដែលវាត្រូវបានគេសន្មត់ថានឹងទទួលបាន - កាន់តែល្អ! បើមិនដូច្នេះទេ ប្រសិនបើកម្មវិធីបន្តដំណើរការ លទ្ធផលអាចនឹងមិនត្រឹមត្រូវ និងមិនបានរំពឹងទុក ហើយវានឹងកាន់តែពិបាកស្វែងរកមូលហេតុនៃកំហុស។ វាអាចទៅរួចផងដែរដែលម៉ាក្រូនឹងត្រូវបាន "ប្រតិបត្តិដោយជោគជ័យ" ។ ជាលទ្ធផល កំហុសនឹងលែងមានអ្នកកត់សម្គាល់ ហើយការងារនឹងបន្តជាមួយនឹងទិន្នន័យមិនត្រឹមត្រូវ!

ក្នុងន័យនេះ វាជាការចង់រកឱ្យឃើញនូវប្រភេទទិន្នន័យមិនត្រឹមត្រូវ និងកែកំហុសបែបនេះនៅក្នុងកូដឱ្យបានឆាប់តាមដែលអាចធ្វើទៅបាន។ សម្រាប់ហេតុផលទាំងនេះ វាត្រូវបានណែនាំឱ្យអ្នកប្រកាសអថេរទាំងអស់នៅពេលសរសេរម៉ាក្រូ VBA ។

ជម្រើសច្បាស់លាស់

ប្រតិបត្តិករ ជម្រើសច្បាស់លាស់ បណ្តាលឱ្យអថេរទាំងអស់ដែលនឹងត្រូវបានប្រើនៅក្នុងកូដ VBA ត្រូវបានប្រកាស ហើយដាក់ទង់អថេរដែលមិនបានប្រកាសទាំងអស់ថាជាកំហុសកំឡុងពេលចងក្រង (មុនពេលដំណើរការកូដចាប់ផ្តើម)។ ការអនុវត្តប្រតិបត្តិករនេះមិនពិបាកទេ - គ្រាន់តែសរសេរបន្ទាត់នេះនៅផ្នែកខាងលើនៃឯកសារ VBA៖

Option Explicit

ប្រសិនបើអ្នកចង់បញ្ចូលជានិច្ច ជម្រើសច្បាស់លាស់ នៅផ្នែកខាងលើនៃម៉ូឌុល VBA ថ្មីនីមួយៗដែលបានបង្កើត នេះអាចត្រូវបានធ្វើដោយស្វ័យប្រវត្តិ។ ដើម្បីធ្វើដូចនេះអ្នកត្រូវបើកជម្រើស ទាមទារការប្រកាសអថេរ នៅក្នុងការកំណត់កម្មវិធីនិពន្ធ VBA ។

នេះត្រូវបានធ្វើដូចនេះ៖

  • ពីម៉ឺនុយ Visual Basic Editor ចុច ឧបករណ៍​ដែល​មាន > ជម្រើស
  • នៅក្នុងប្រអប់ដែលលេចឡើងសូមបើកផ្ទាំង កម្មវិធីនិពន្ធ
  • ធីកប្រអប់ ទាមទារការប្រកាសអថេរ ហើយចុច OK

នៅពេលបើក ខ្សែអក្សរ ជម្រើសច្បាស់លាស់ នឹងត្រូវបានបញ្ចូលដោយស្វ័យប្រវត្តិនៅដើមដំបូងនៃម៉ូឌុលថ្មីនីមួយៗដែលបានបង្កើត។

វិសាលភាពនៃអថេរ និងថេរ

អថេរដែលបានប្រកាស ឬថេរនីមួយៗមានវិសាលភាពកំណត់របស់វា នោះគឺជាផ្នែកកំណត់នៃកម្មវិធីដែលអថេរនេះមាន។ វិសាលភាពអាស្រ័យលើកន្លែងដែលការប្រកាសអថេរ ឬថេរត្រូវបានធ្វើឡើង។ យកឧទាហរណ៍អថេរ sVAT_អត្រាដែលត្រូវបានប្រើក្នុងមុខងារ Total_Cost. តារាងខាងក្រោមពិភាក្សាអំពីជម្រើសពីរសម្រាប់វិសាលភាពអថេរ sVAT_អត្រាបានប្រកាសនៅក្នុងមុខតំណែងពីរផ្សេងគ្នានៅក្នុងម៉ូឌុល៖

Option Explicit Dim sVAT_Rate As Single Function Total_Cost() As Double... End Function
ប្រសិនបើអថេរ sVAT_អត្រា បានប្រកាសនៅដើមដំបូងនៃម៉ូឌុល បន្ទាប់មកវិសាលភាពនៃអថេរនេះនឹងក្លាយជាម៉ូឌុលទាំងមូល (ឧទាហរណ៍អថេរ sVAT_អត្រា នឹងត្រូវបានទទួលស្គាល់ដោយនីតិវិធីទាំងអស់នៅក្នុងម៉ូឌុលនេះ)។

ដូច្នេះប្រសិនបើនៅក្នុងមុខងារ Total_Cost អថេរ sVAT_អត្រា នឹង​ត្រូវ​បាន​កំណត់​តម្លៃ​មួយ​ចំនួន បន្ទាប់​មក​អនុគមន៍​បន្ទាប់​ដែល​ប្រតិបត្តិ​ក្នុង​ម៉ូឌុល​ដូចគ្នា​នឹង​ប្រើ​អថេរ sVAT_អត្រា ជាមួយនឹងអត្ថន័យដូចគ្នា។

ទោះយ៉ាងណាក៏ដោយ ប្រសិនបើមុខងារមួយចំនួននៅក្នុងម៉ូឌុលផ្សេងទៀតត្រូវបានហៅ នោះអថេរសម្រាប់វា sVAT_អត្រា នឹងមិនត្រូវបានគេស្គាល់។

Option Explicit Function Total_Cost() As Double Dim sVAT_Rate As Single... End Function
ប្រសិនបើអថេរ sVAT_អត្រា បានប្រកាសនៅដើមមុខងារ Total_Costបន្ទាប់មកវិសាលភាពរបស់វានឹងត្រូវបានកំណត់ចំពោះមុខងារនេះតែប៉ុណ្ណោះ (ឧ Total_Costអ្នកអាចប្រើអថេរ sVAT_អត្រាប៉ុន្តែមិនមែននៅខាងក្រៅទេ) ។

នៅពេលព្យាយាមប្រើ sVAT_អត្រា នៅក្នុងនីតិវិធីមួយផ្សេងទៀត កម្មវិធីចងក្រង VBA នឹងរាយការណ៍ពីកំហុសមួយ ដោយសារអថេរនេះមិនត្រូវបានប្រកាសនៅខាងក្រៅមុខងារ Total_Cost (ផ្តល់ថាប្រតិបត្តិករត្រូវបានប្រើ ជម្រើសច្បាស់លាស់).

នៅក្នុងឧទាហរណ៍ដែលបានបង្ហាញខាងលើ អថេរត្រូវបានប្រកាសនៅកម្រិតម៉ូឌុលជាមួយនឹងពាក្យគន្លឹះ ស្រអាប់. ទោះយ៉ាងណាក៏ដោយ វាអាចចាំបាច់ដែលអថេរដែលបានប្រកាសអាចត្រូវបានប្រើនៅក្នុងម៉ូឌុលផ្សេងទៀត។ ក្នុងករណីបែបនេះ ដើម្បីប្រកាសអថេរជំនួសឱ្យពាក្យគន្លឹះ ស្រអាប់ ពាក្យគន្លឹះត្រូវតែប្រើ សាធារណៈ.

ដោយវិធីនេះ ដើម្បីប្រកាសអថេរនៅកម្រិតម៉ូឌុល ជំនួសឱ្យពាក្យគន្លឹះ ស្រអាប់ ពាក្យគន្លឹះអាចត្រូវបានប្រើ ឯកជនដែលបង្ហាញថាអថេរនេះត្រូវបានបម្រុងទុកសម្រាប់ប្រើតែនៅក្នុងម៉ូឌុលបច្ចុប្បន្នប៉ុណ្ណោះ។

អ្នកក៏អាចប្រើពាក្យគន្លឹះដើម្បីប្រកាសតម្លៃថេរ។ សាធារណៈ и ឯកជនប៉ុន្តែមិនមែនជំនួសឱ្យពាក្យគន្លឹះទេ។ ថេររួមជាមួយនឹងវា។

ឧទាហរណ៍ខាងក្រោមបង្ហាញពីការប្រើប្រាស់ពាក្យគន្លឹះ សាធារណៈ и ឯកជន បានអនុវត្តចំពោះអថេរ និងថេរ។

Option Explicit Public sVAT_Rate As Single Public Const iMax_Count = 5000 ...    
ក្នុងឧទាហរណ៍នេះ ពាក្យគន្លឹះ សាធារណៈ ប្រើដើម្បីប្រកាសអថេរ sVAT_អត្រា និងថេរ iMax_Count. វិសាលភាពនៃធាតុដែលបានប្រកាសតាមរបៀបនេះនឹងក្លាយជាគម្រោងបច្ចុប្បន្នទាំងមូល។

នេះ​មានន័យថា sVAT_អត្រា и iMax_Count នឹងមាននៅក្នុងម៉ូឌុលគម្រោងណាមួយ។

ជម្រើស Explicit Private sVAT_Rate As Single Private Const iMax_Count = 5000 ...    
ក្នុងឧទាហរណ៍នេះ ដើម្បីប្រកាសអថេរ sVAT_អត្រា និងថេរ iMax_Count ពាក្យគន្លឹះដែលបានប្រើ ឯកជន. វិសាលភាពនៃធាតុទាំងនេះគឺជាម៉ូឌុលបច្ចុប្បន្ន។

នេះ​មានន័យថា sVAT_អត្រា и iMax_Count នឹងមាននៅក្នុងគ្រប់នីតិវិធីនៃម៉ូឌុលបច្ចុប្បន្ន ប៉ុន្តែនឹងមិនមានសម្រាប់នីតិវិធីនៅក្នុងម៉ូឌុលផ្សេងទៀតទេ។

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