ស្វែងយល់ពីរបៀបបំបាត់កំហុសមុខងារផ្ទាល់ខ្លួននៅក្នុង Excel

  • ចែករំលែកនេះ។
Michael Brown

ដូចដែលអ្នកបានដឹងរួចមកហើយពីរបៀបបង្កើត UDFs (ហើយខ្ញុំសង្ឃឹមថា អ្នកក៏បានព្យាយាមអនុវត្តពួកវានៅក្នុង Excel របស់អ្នក) ចូរយើងស្វែងយល់ឱ្យកាន់តែស៊ីជម្រៅបន្តិច ហើយមើលថាតើអាចធ្វើអ្វីបានក្នុងករណីដែលមុខងារដែលបានកំណត់ដោយអ្នកប្រើប្រាស់របស់អ្នកមិនដំណើរការ។

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

យើងនឹងស្វែងយល់ពីបច្ចេកទេសបំបាត់កំហុសខាងក្រោម៖

    នៅពេលអ្នកបង្កើតមុខងារផ្ទាល់ខ្លួន វាតែងតែមានលទ្ធភាព ថាអ្នកនឹងធ្វើខុស។ មុខងារផ្ទាល់ខ្លួនជាធម្មតាមានភាពស្មុគស្មាញណាស់។ ហើយពួកគេមិនតែងតែចាប់ផ្តើមធ្វើការត្រឹមត្រូវភ្លាមៗនោះទេ។ រូបមន្តអាចត្រឡប់លទ្ធផលមិនត្រឹមត្រូវ ឬ #VALUE! កំហុស។ មិនដូចមុខងារ Excel ស្តង់ដារទេ អ្នកនឹងមិនឃើញសារផ្សេងទៀតទេ។

    តើមានវិធីដើម្បីឆ្លងកាត់មុខងារផ្ទាល់ខ្លួនមួយជំហានម្តងមួយៗ ដើម្បីពិនិត្យមើលពីរបៀបដែលសេចក្តីថ្លែងការណ៍នីមួយៗរបស់វាដំណើរការដែរឬទេ? ប្រាកដណាស់! ការកែកំហុសត្រូវបានប្រើប្រាស់សម្រាប់បញ្ហានេះ។

    ខ្ញុំនឹងផ្តល់ជូនអ្នកនូវវិធីជាច្រើនដើម្បីបំបាត់កំហុសមុខងារផ្ទាល់ខ្លួនរបស់អ្នក ដូច្នេះអ្នកអាចជ្រើសរើសមួយដែលដំណើរការសម្រាប់អ្នក។

    ជាឧទាហរណ៍ យើងប្រើមុខងារផ្ទាល់ខ្លួន GetMaxBetween ពីអត្ថបទមុនរបស់យើងដែលគណនាចំនួនអតិបរមាក្នុងជួរតម្លៃដែលបានបញ្ជាក់៖

    អនុគមន៍ GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i ជាចំនួនគត់ ReDim arrNums(rngCells.Count) សម្រាប់ NumRange នីមួយៗក្នុង rngCells vMax =NumRange ជ្រើសរើស Case vMax Case MinNum + 0.01 To MaxNum - 0.01 arrNums(i) = vMax i = i + 1 Case Else GetMaxBetween = 0 End ជ្រើសរើស NumRange បន្ទាប់ GetMaxBetween = WorksheetFunction.Max(arrNums) End Function

    គឺជាមុខងារ ជួរនៃក្រឡាដែលលេខត្រូវបានសរសេរ ក៏ដូចជាដែនកំណត់ខាងលើ និងខាងក្រោមនៃតម្លៃ។

    ដាក់មុខងារ MsgBox នៅកន្លែងសំខាន់ៗ

    ដើម្បីតាមដានការប្រតិបត្តិនៃការគណនា អ្នកអាចបង្ហាញ តម្លៃនៃអថេរសំខាន់បំផុតនៅលើអេក្រង់នៅកន្លែងដែលត្រឹមត្រូវ។ នេះអាចត្រូវបានធ្វើដោយប្រើប្រអប់លេចឡើង។

    MsgBox គឺជាប្រអប់ដែលអ្នកអាចប្រើដើម្បីបង្ហាញប្រភេទសារមួយចំនួនទៅកាន់អ្នកប្រើប្រាស់។

    វាក្យសម្ព័ន្ធរបស់ MsgBox គឺស្រដៀងគ្នាទៅនឹងមុខងារ VBA ផ្សេងទៀត៖

    MsgBox(prompt [, buttons] [, title] [, helpfile, context])

    prompt គឺជាអាគុយម៉ង់ដែលត្រូវការ។ វាមានសារដែលអ្នកឃើញក្នុងប្រអប់។ វាក៏អាចប្រើដើម្បីបង្ហាញតម្លៃនៃអថេរនីមួយៗផងដែរ។

    អាគុយម៉ង់ផ្សេងទៀតទាំងអស់គឺស្រេចចិត្ត។

    [ ប៊ូតុង ] - កំណត់ថាតើប៊ូតុង និងរូបតំណាងណាមួយជា បង្ហាញក្នុង MsgBox ។ ឧទាហរណ៍ ប្រសិនបើយើងប្រើជម្រើស vbOkOnly នោះមានតែប៊ូតុង យល់ព្រម នឹងត្រូវបានបង្ហាញ។ ទោះបីជាអ្នកខកខានអាគុយម៉ង់នេះក៏ដោយ ក៏ប៊ូតុងនេះត្រូវបានប្រើតាមលំនាំដើម។

    [ ចំណងជើង ] - នៅទីនេះអ្នកអាចបញ្ជាក់ចំណងជើងនៃប្រអប់សារ។

    តោះប្តូរពី ពាក្យដែលត្រូវអនុវត្ត ហើយចាប់ផ្តើមបំបាត់កំហុស។ ដើម្បីបង្ហាញសារ បន្ថែមបន្ទាត់ខាងក្រោមទៅកូដនៃមុខងារ GetMaxBetween ដែលកំណត់ដោយអ្នកប្រើប្រាស់ មុនពេលប្រតិបត្តិករ Case Else

    MsgBox vMax, "Count -" & i

    នេះគឺជាអ្វីដែលយើងនឹងទទួលបាននៅក្នុងលទ្ធផល៖

    អនុគមន៍ GetMaxBetween(rngCells As Range, MinNum, MaxNum) Dim NumRange As Range Dim vMax Dim arrNums() Dim i As Integer ReDim arrNums(rngCells.Count) សម្រាប់ NumRange នីមួយៗក្នុង rngCells vMax = NumRange ជ្រើសរើស Case vMax Case MinNum + 0.01 To MaxNum - 0.01 arrNums(i) = vMax i = i + 1 MsgBox vMax, "Count -" & i Case Else GetMaxBetween = 0 End ជ្រើសរើស Next NumRange GetMaxBetween = WorksheetFunction.Max(arrNums) End Function

    ដោយប្រើអថេរ vMax ក្នុងប្រអប់ យើងនឹងឃើញលេខណាមួយដែលត្រូវនឹងលក្ខណៈវិនិច្ឆ័យសម្រាប់ការជ្រើសរើស ដូច្នេះ ដែលយើងអាចជ្រើសរើសធំបំផុតនៃពួកគេ។ ជាមួយនឹងកន្សោម "រាប់ -" & amp; ខ្ញុំនៅក្នុងរបារចំណងជើង យើងបង្ហាញចំនួនលេខដែលយើងបានជ្រើសរើសរួចហើយដើម្បីកំណត់តម្លៃអតិបរមា។ ការរាប់នឹងត្រូវបានបង្កើនជាមួយនឹងតម្លៃថ្មីនីមួយៗ។

    នៅពេលដែលយើងមានសំណុំ UDF របស់យើង យើងអនុវត្តរូបមន្តខាងក្រោមទៅជួរកាលបរិច្ឆេទ៖

    = GetMaxBetween (A1:A6,10,50)

    បន្ទាប់ពីប៊ូតុងបញ្ចូល ត្រូវបានចុច អ្នកនឹងឃើញសារមួយដូចនៅក្នុងរូបថតអេក្រង់ខាងក្រោម៖

    នេះគឺជាលេខដំបូងក្នុងជួរ A1: A6 ដែលបំពេញតាមលក្ខណៈវិនិច្ឆ័យ៖ ធំជាង 10 ប៉ុន្តែតិចជាង លើសពី 50.

    បន្ទាប់ពីអ្នកចុច OK សារទីពីរនឹងលេចឡើងជាមួយនឹងលេខ 14។ លេខដែលនៅសល់មិនត្រូវគ្នានឹងការជ្រើសរើសទេ។លក្ខណៈវិនិច្ឆ័យ។ ដូច្នេះ អនុគមន៍​ចេញ​ហើយ​ត្រឡប់​តម្លៃ​ធំ​បំផុត​នៃ​តម្លៃ​ពីរ 17.

    អនុគមន៍ MsgBox អាច​ត្រូវ​បាន​ប្រើ​នៅ​កន្លែង​សំខាន់​បំផុត​ក្នុង​មុខងារ​ផ្ទាល់​ខ្លួន​របស់​អ្នក ដើម្បី​គ្រប់គ្រង​របៀប​ដែល​តម្លៃ នៃការផ្លាស់ប្តូរអថេរបុគ្គល។ ប្រអប់សារអាចមានប្រយោជន៍ខ្លាំងណាស់នៅពេលដែលអ្នកមានមុខងារធំ និងការគណនាច្រើន។ ក្នុងករណីនេះ វានឹងងាយស្រួលសម្រាប់អ្នកក្នុងការកំណត់ថាតើផ្នែកណានៃកូដដែលមានកំហុសកើតឡើង។

    កំណត់ចំណុចឈប់ ហើយអនុវត្តមួយជំហានម្តងៗ

    អ្នកអាចបន្ថែមចំណុចឈប់ទៅកូដនៃ មុខងាររបស់អ្នកដែលការប្រតិបត្តិកូដនឹងឈប់។ ដូច្នេះអ្នកអាចអនុវត្តតាមជំហាននៃដំណើរការគណនា។ ក្នុងការធ្វើដូច្នេះ អ្នកអាចឃើញពីរបៀបដែលតម្លៃនៃអថេរផ្លាស់ប្តូរ។

    ដើម្បីបន្ថែមចំណុចឈប់ សូមដាក់ទស្សន៍ទ្រនិចនៅលើបន្ទាត់ដែលមានសេចក្តីថ្លែងការណ៍ដែលអ្នកជ្រើសរើសផ្អាក។ បន្ទាប់មកចុចខាងស្តាំ ហើយជ្រើសរើស Debug -> បិទ/បើក Breakpoint ឬគ្រាន់តែចុច F9 ។ អ្នកក៏អាចចុចនៅកន្លែងដែលអ្នកចង់បាននៅលើតំបន់ពណ៌ប្រផេះបញ្ឈរនៅខាងឆ្វេងនៃកូដមុខងារ។

    រង្វង់ពណ៌ក្រហមនឹងលេចឡើង ដូចដែលអ្នកអាចមើលឃើញនៅក្នុងរូបថតអេក្រង់ខាងក្រោម។ បន្ទាត់នៃកូដដែលការគណនានឹងត្រូវបានបញ្ឈប់ត្រូវបានបន្លិចជាពណ៌ក្រហម។

    ឥឡូវនេះ បង្អួចកម្មវិធីនិពន្ធ VBA នឹងត្រូវបានបើកនៅពេលដែលមុខងារកំពុងដំណើរការ។ ទស្សន៍ទ្រនិចនឹងត្រូវបានដាក់នៅចំណុចដែលអ្នកឈប់។

    ប្រសិនបើអ្នកដាក់ទស្សន៍ទ្រនិចកណ្ដុររបស់អ្នកលើអថេរណាមួយនៅក្នុងកូដមុខងារ អ្នកអាចឃើញចរន្តរបស់វាតម្លៃ៖

    ចុច F5 ដើម្បីបន្តការគណនា។

    ចំណាំ។ បន្ទាប់ពីចំណុចឈប់ អ្នកអាចចាប់ផ្តើមតាមដានវឌ្ឍនភាពនៃការគណនាជាជំហានៗ។ ប្រសិនបើអ្នកចុចប៊ូតុង F8 នោះមានតែបន្ទាត់បន្ទាប់មួយនៃកូដ VBA នឹងត្រូវបានប្រតិបត្តិ។ បន្ទាត់ពណ៌លឿងដែលមានព្រួញក៏នឹងផ្លាស់ទីទៅទីតាំងកូដដែលបានប្រតិបត្តិចុងក្រោយផងដែរ។

    ចាប់តាំងពីការប្រតិបត្តិមុខងារត្រូវបានផ្អាកម្តងទៀត អ្នកអាចមើលតម្លៃបច្ចុប្បន្ននៃអថេរទាំងអស់នៃមុខងារដោយប្រើទស្សន៍ទ្រនិចកណ្ដុរ។

    ការចុច F8 បន្ទាប់នឹងនាំយើងមួយជំហានទៅមុខ . ដូច្នេះអ្នកអាចចុច F8 រហូតដល់ចុងបញ្ចប់នៃការគណនា។ ឬចុច F5 ដើម្បីបន្តការគណនារហូតដល់ចំណុចឈប់បន្ទាប់។

    ប្រសិនបើមានកំហុសកើតឡើង ទស្សន៍ទ្រនិចនឹងត្រូវបានបញ្ឈប់នៅចំណុចក្នុងកូដដែលកំហុសបានកើតឡើង។ ហើយអ្នកក៏នឹងឃើញសារកំហុសលេចឡើងផងដែរ។ វាធ្វើឱ្យវាងាយស្រួលក្នុងការកំណត់មូលហេតុនៃបញ្ហា។

    ចំណុចឈប់ដែលអ្នកបញ្ជាក់នឹងត្រូវបានអនុវត្តរហូតដល់អ្នកបិទឯកសារ។ នៅពេលអ្នកបើកវាឡើងវិញ អ្នកនឹងត្រូវកំណត់ពួកវាម្តងទៀត។ មិន​មែន​ជា​វិធី​សាស្រ្ដ​ដ៏​ងាយ​ស្រួល​បំផុត​ទេ​ អ្នក​មិន​គិត​ទេ? បញ្ចូលសេចក្តីថ្លែងការណ៍ Stop ទៅក្នុងកូដមុខងារនៅចំណុចចាំបាច់ ហើយអ្នកអាចបញ្ឈប់ការប្រតិបត្តិកម្មវិធីតាមរបៀបដូចគ្នានឹងពេលប្រើចំណុចឈប់។

    នៅពេលដែល VBA ជួបនឹងសេចក្តីថ្លែងការណ៍ Stop វានឹងបញ្ឈប់ការប្រតិបត្តិកម្មវិធី ហើយរង់ចាំសកម្មភាពរបស់អ្នក។ ពិនិត្យតម្លៃនៃអថេរ បន្ទាប់មកចុច F5 ដើម្បីបន្ត។

    ឬចុច F8 ដើម្បីបំពេញមុខងារមួយជំហានម្តងៗ ដូចដែលបានពិពណ៌នាខាងលើ។

    សេចក្តីថ្លែងការណ៍ Stop គឺជាផ្នែកមួយនៃកម្មវិធី ដូច្នេះហើយគឺ មិន​ត្រូវ​បាន​លុប​ចេញ ដូច​ករណី​ដែល​មាន​ចំណុច​ឈប់​ដែរ។ នៅពេលអ្នកបញ្ចប់ការកែកំហុស សូមលុបវាចេញដោយខ្លួនឯង។ ឬបង្វែរវាទៅជាមតិយោបល់ដោយបញ្ចូលវាជាមួយសម្រង់តែមួយ (')។

    ការបំបាត់កំហុសដោយប្រើ Debug.Print operator

    អ្នកអាចដាក់ Debug.Print នៅក្នុង កូដមុខងារនៅកន្លែងត្រឹមត្រូវ។ វាមានប្រយោជន៍ក្នុងការពិនិត្យមើលតម្លៃនៃអថេរដែលផ្លាស់ប្តូរជារង្វង់។

    អ្នកអាចឃើញឧទាហរណ៍នៃដំណើរការរបស់ Debug.Print នៅលើរូបថតអេក្រង់ខាងក្រោម។

    សេចក្តីថ្លែងការណ៍ Debug.Print i, vMax បោះពុម្ពតម្លៃ និងលេខធម្មតារបស់ពួកគេ។

    នៅក្នុងបង្អួចភ្លាមៗ អ្នកឃើញលេខពីរ (17 និង 14) ពីជួរដែលបានជ្រើសរើស ដែលត្រូវនឹង កំណត់ដែនកំណត់ ហើយក្នុងចំណោមនោះអតិបរមានឹងត្រូវបានជ្រើសរើស។ លេខ 1 និង 2 មានន័យថាមុខងារបានបញ្ចប់ 2 វដ្តដែលលេខត្រូវបានជ្រើសរើស។ យើង​ឃើញ​តម្លៃ​នៃ​អថេរ​ដែល​សំខាន់​បំផុត ដូច​ដែល​យើង​បាន​ធ្វើ​មុន​ជាមួយ MsgBox ។ ប៉ុន្តែវាមិនបានបញ្ឈប់មុខងារនោះទេ។

    ហៅមុខងារពីនីតិវិធី

    អ្នកអាចហៅមុខងារដែលកំណត់ដោយអ្នកប្រើប្រាស់មិនមែនមកពីក្រឡាក្នុងសន្លឹកកិច្ចការនោះទេ ប៉ុន្តែមកពីនីតិវិធីមួយ។ ក្នុងករណីនេះ កំហុសទាំងអស់នឹងត្រូវបានបង្ហាញនៅក្នុងបង្អួច Visual Basic Editor។

    នេះជារបៀបដែលអ្នកអាចហៅមុខងារកំណត់ដោយអ្នកប្រើប្រាស់ GetMaxBerween ពីនីតិវិធី៖

    Sub Test() Dim x x = GetMaxBetween(Range ( "A1:A6" ), 10, 50) MsgBox(x) End Sub

    ដាក់ទស្សន៍ទ្រនិចនៅកន្លែងណាមួយក្នុងកូដ ហើយចុច F5 ។ ប្រសិនបើមិនមានកំហុសនៅក្នុងមុខងារទេ អ្នកនឹងឃើញបង្អួចលេចឡើងជាមួយនឹងលទ្ធផលនៃការគណនា។

    ក្នុងករណីមានកំហុស អ្នកនឹងឃើញសារដែលត្រូវគ្នានៅក្នុងកម្មវិធីនិពន្ធ VBA ។ ការ​គណនា​នឹង​ត្រូវ​បាន​បញ្ឈប់ ហើយ​បន្ទាត់​កូដ​ដែល​មាន​កំហុស​នឹង​ត្រូវ​បាន​បន្លិច​ជា​ពណ៌​លឿង។ អ្នកអាចកំណត់អត្តសញ្ញាណយ៉ាងងាយស្រួលអំពីទីកន្លែង និងមូលហេតុដែលកំហុសបានកើតឡើង។

    នោះហើយជាទាំងអស់។ ឥឡូវនេះអ្នកបានបង្កើតកម្មវិធីបន្ថែមផ្ទាល់ខ្លួនរបស់អ្នក បន្ថែមវាទៅក្នុង Excel ហើយអ្នកអាចប្រើ UDF ​​នៅក្នុងវាបាន។ ប្រសិនបើអ្នកចង់ប្រើ UDFs បន្ថែមទៀត គ្រាន់តែសរសេរកូដនៅក្នុងម៉ូឌុលបន្ថែមនៅក្នុងកម្មវិធីនិពន្ធ VBA ហើយរក្សាទុកវា។

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

    ម៉ៃឃើល ប្រោន ជា​អ្នក​ចូល​ចិត្ត​ផ្នែក​បច្ចេកវិទ្យា​ដែល​មាន​ចំណង់​ចំណូល​ចិត្ត​ក្នុង​ការ​សម្រួល​ដំណើរការ​ស្មុគស្មាញ​ដោយ​ប្រើ​ឧបករណ៍​កម្មវិធី។ ជាមួយនឹងបទពិសោធន៍ជាងមួយទស្សវត្សនៅក្នុងឧស្សាហកម្មបច្ចេកវិទ្យា គាត់បានពង្រឹងជំនាញរបស់គាត់នៅក្នុង Microsoft Excel និង Outlook ក៏ដូចជា Google Sheets និង Docs ។ ប្លក់របស់ម៉ៃឃើលគឺឧទ្ទិសដល់ការចែករំលែកចំណេះដឹង និងជំនាញរបស់គាត់ជាមួយអ្នកដទៃ ដោយផ្តល់នូវគន្លឹះ និងមេរៀនដែលងាយស្រួលធ្វើតាមសម្រាប់ការកែលម្អផលិតភាព និងប្រសិទ្ធភាព។ មិនថាអ្នកជាអ្នកជំនាញ ឬអ្នកចាប់ផ្តើមដំបូងទេ ប្លក់របស់ Michael ផ្តល់នូវការយល់ដឹងដ៏មានតម្លៃ និងដំបូន្មានជាក់ស្តែងសម្រាប់ការទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពីឧបករណ៍កម្មវិធីសំខាន់ៗទាំងនេះ។