នៅក្នុង 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 នឹងចាត់ទុកវាជាអថេរនៃប្រភេទ។ វ៉ារ្យ៉ង់. ទោះយ៉ាងណាក៏ដោយ មានហេតុផលមួយចំនួនដែលមិនគួរធ្វើ៖
- ការប្រើប្រាស់អង្គចងចាំ និងល្បឿនគណនា។ ប្រសិនបើអ្នកមិនប្រកាសអថេរដែលមានការចង្អុលបង្ហាញអំពីប្រភេទទិន្នន័យនោះ តាមលំនាំដើម វានឹងត្រូវបានកំណត់ទៅប្រភេទ វ៉ារ្យ៉ង់. ប្រភេទទិន្នន័យនេះប្រើអង្គចងចាំច្រើនជាងប្រភេទទិន្នន័យផ្សេងទៀត។ បៃបន្ថែមពីរបីក្នុងមួយអថេរអាចស្តាប់ទៅមិនច្រើន ប៉ុន្តែនៅក្នុងការអនុវត្តកម្មវិធីអាចមានអថេររាប់ពាន់ (ជាពិសេសនៅពេលធ្វើការជាមួយអារេ)។ ដូច្នេះអង្គចងចាំបន្ថែមដែលប្រើដោយអថេរដូចជា វ៉ារ្យ៉ង់បើប្រៀបធៀបទៅនឹងអថេរនៃប្រភេទ លេខគត់ or នៅលីវ, អាចបន្ថែមរហូតដល់ចំនួនដ៏សំខាន់។ លើសពីនេះទៀតប្រតិបត្តិការជាមួយអថេរនៃប្រភេទ វ៉ារ្យ៉ង់ ត្រូវបានប្រតិបត្តិយឺតជាងអថេរនៃប្រភេទផ្សេងទៀត រៀងខ្លួនអថេរបន្ថែមមួយពាន់ប្រភេទ វ៉ារ្យ៉ង់ អាចបន្ថយល្បឿនការគណនាយ៉ាងខ្លាំង។
- ការការពារការវាយអក្សរនៅក្នុងឈ្មោះអថេរ។ ប្រសិនបើអថេរទាំងអស់ត្រូវបានប្រកាស នោះសេចក្តីថ្លែងការណ៍ VBA អាចត្រូវបានប្រើ − ជម្រើសច្បាស់លាស់ (យើងនឹងនិយាយអំពីវានៅពេលក្រោយ) ដើម្បីកំណត់អត្តសញ្ញាណអថេរដែលមិនបានប្រកាសទាំងអស់។ វាលុបបំបាត់ការលេចឡើងនៃកំហុសនៅក្នុងកម្មវិធីដែលជាលទ្ធផលនៃឈ្មោះអថេរដែលបានសរសេរមិនត្រឹមត្រូវ។ ឧទាហរណ៍ដោយប្រើអថេរដែលមានឈ្មោះ sVAT_អត្រាអ្នកអាចធ្វើការវាយអក្សរ ហើយកំណត់តម្លៃទៅអថេរនេះ សរសេរថា “VATRate = 0,175”។ គេរំពឹងថាចាប់ពីពេលនេះតទៅអថេរ sVAT_អត្រា គួរតែមានតម្លៃ 0,175 - ប៉ុន្តែជាការពិតវាមិនមែនទេ។ ប្រសិនបើរបៀបនៃការប្រកាសជាកាតព្វកិច្ចនៃអថេរដែលបានប្រើទាំងអស់ត្រូវបានបើក នោះកម្មវិធីចងក្រង VBA នឹងបង្ហាញកំហុសភ្លាមៗ ព្រោះវានឹងមិនស្វែងរកអថេរនោះទេ។ VATRate ក្នុងចំណោមអ្នកដែលបានប្រកាស។
- ការបន្លិចតម្លៃដែលមិនត្រូវគ្នានឹងប្រភេទដែលបានប្រកាសនៃអថេរមួយ។ ប្រសិនបើអ្នកប្រកាសអថេរនៃប្រភេទជាក់លាក់មួយ ហើយព្យាយាមកំណត់ទិន្នន័យនៃប្រភេទផ្សេងទៅវា អ្នកនឹងទទួលបាន 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 នឹងមាននៅក្នុងគ្រប់នីតិវិធីនៃម៉ូឌុលបច្ចុប្បន្ន ប៉ុន្តែនឹងមិនមានសម្រាប់នីតិវិធីនៅក្នុងម៉ូឌុលផ្សេងទៀតទេ។ |