បញ្ជីទម្លាក់ចុះបុរាណនៅក្នុងសន្លឹក Excel គឺល្អណាស់ ប៉ុន្តែវាអនុញ្ញាតឱ្យអ្នកជ្រើសរើសជម្រើសមួយពីសំណុំដែលបានបង្ហាញ។ ពេលខ្លះនេះគឺជាអ្វីដែលអ្នកចង់បាន ប៉ុន្តែមានស្ថានភាពដែលអ្នកប្រើប្រាស់ត្រូវការដើម្បីអាចជ្រើសរើសបាន។ មួយចំនួន ធាតុពីបញ្ជី។
សូមក្រឡេកមើលការអនុវត្តធម្មតាមួយចំនួននៃបញ្ជីជ្រើសរើសច្រើនបែបនេះ។
ជម្រើស 1. ផ្ដេក
អ្នកប្រើប្រាស់ជ្រើសរើសធាតុពីបញ្ជីទម្លាក់ចុះម្តងមួយៗ ហើយពួកវាលេចឡើងនៅខាងស្តាំនៃក្រឡាដែលកំពុងត្រូវបានផ្លាស់ប្តូរ ដែលត្រូវបានដាក់ក្នុងបញ្ជីផ្ដេកដោយស្វ័យប្រវត្តិ៖
បញ្ជីទម្លាក់ចុះក្នុងក្រឡា C2:C5 ក្នុងឧទាហរណ៍នេះត្រូវបានបង្កើតតាមរបៀបស្តង់ដារ ពោលគឺ
- ជ្រើសរើសក្រឡា C2:C5
- ផ្ទាំង ឬម៉ឺនុយ ទិន្នន័យ ជ្រើសរើសក្រុម សុពលភាពទិន្នន័យ
- នៅក្នុងបង្អួចដែលបើក សូមជ្រើសរើសជម្រើសមួយ។ បញ្ជី និងបញ្ជាក់ជាជួរ ប្រភព ក្រឡាដែលមានទិន្នន័យប្រភពសម្រាប់បញ្ជី A1:A8
បន្ទាប់មកអ្នកត្រូវបន្ថែមម៉ាក្រូទៅម៉ូឌុលសន្លឹកដែលនឹងធ្វើការងារសំខាន់ទាំងអស់ ពោលគឺបន្ថែមតម្លៃដែលបានជ្រើសរើសទៅខាងស្តាំនៃក្រឡាពណ៌បៃតង។ ដើម្បីធ្វើដូចនេះចុចខាងស្តាំលើផ្ទាំងសន្លឹកដែលមានបញ្ជីទម្លាក់ចុះហើយជ្រើសរើសពាក្យបញ្ជា ប្រភពកូដ. បិទភ្ជាប់កូដខាងក្រោមទៅក្នុងបង្អួចកម្មវិធីនិពន្ធ Visual Basic ដែលបើក៖
Private Sub Worksheet_Change(ByVal Target As Range) នៅលើកំហុសបន្តបន្ទាប់ទៀត ប្រសិនបើមិនប្រសព្វ(Target, Range("C2:C5")) គ្មានអ្វីទេ ហើយ Target.Cells.Count = 1 បន្ទាប់មក Application.EnableEvents = False ប្រសិនបើ Len(Target.Offset (0, 1)) = 0 បន្ទាប់មក Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End ប្រសិនបើ End Sub
បើចាំបាច់ ជំនួសជួររសើបនៃបញ្ជីទម្លាក់ចុះ C2:C5 នៅក្នុងជួរទីពីរនៃកូដនេះដោយខ្លួនអ្នកផ្ទាល់។
ជម្រើស 2. បញ្ឈរ
ដូចគ្នាទៅនឹងកំណែមុនដែរ ប៉ុន្តែតម្លៃដែលបានជ្រើសរើសថ្មីមិនត្រូវបានបន្ថែមទៅខាងស្តាំទេ ប៉ុន្តែនៅខាងក្រោម៖
វាត្រូវបានធ្វើតាមវិធីដូចគ្នា ប៉ុន្តែកូដម៉ាក្រូអ្នកដោះស្រាយផ្លាស់ប្តូរបន្តិចបន្តួច៖
Private Sub Worksheet_Change(ByVal Target As Range) លើកំហុសបន្តបន្ទាប់ទៀត ប្រសិនបើមិនប្រសព្វ(Target, Range("C2:F2")) គ្មានអ្វីទេ ហើយ Target.Cells.Count = 1 បន្ទាប់មក Application.EnableEvents = False ប្រសិនបើ Len(Target.Offset (1, 0)) = 0 បន្ទាប់មក Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End ប្រសិនបើ End Sub
ជាថ្មីម្តងទៀត ប្រសិនបើចាំបាច់ ជំនួសជួររសើបនៃបញ្ជីទម្លាក់ចុះ C2:F2 របស់អ្នកនៅក្នុងជួរទីពីរនៃកូដនេះ។
ជម្រើស 3. ជាមួយនឹងការប្រមូលផ្តុំនៅក្នុងក្រឡាដូចគ្នា។
នៅក្នុងជម្រើសនេះ ការប្រមូលផ្តុំកើតឡើងនៅក្នុងក្រឡាដូចគ្នាដែលបញ្ជីទម្លាក់ចុះមានទីតាំងនៅ។ ធាតុដែលបានជ្រើសរើសត្រូវបានបំបែកដោយតួអក្សរណាមួយ (ឧទាហរណ៍ សញ្ញាក្បៀស)៖
បញ្ជីទម្លាក់ចុះនៅក្នុងក្រឡាពណ៌បៃតងត្រូវបានបង្កើតតាមរបៀបស្តង់ដារទាំងស្រុង ដូចនៅក្នុងវិធីមុនៗដែរ។ ការងារទាំងអស់ត្រូវបានធ្វើម្តងទៀតដោយម៉ាក្រូនៅក្នុងម៉ូឌុលសន្លឹក៖
Private Sub Worksheet_Change(ByVal Target As Range) លើកំហុសបន្តបន្ទាប់ទៀត ប្រសិនបើមិនប្រសព្វ(Target, Range("C2:C5")) is nothing and Target.Cells.Count = 1 បន្ទាប់មក Application.EnableEvents = False newVal = Target Application.Undo oldval = គោលដៅប្រសិនបើ Len(oldval) <> 0 និង oldval <> newVal បន្ទាប់មក គោលដៅ = គោលដៅ & "," & newVal Else Target = newVal End ប្រសិនបើ Len(newVal) = 0 បន្ទាប់មក Target.ClearContents Application.EnableEvents = True End ប្រសិនបើ បញ្ចប់ អនុ
ប្រសិនបើចង់បាន អ្នកអាចជំនួសតួអក្សរបំបែក (សញ្ញាក្បៀស) នៅក្នុងជួរទី 9 នៃកូដដោយខ្លួនអ្នក (ឧទាហរណ៍ ចន្លោះ ឬសញ្ញាក្បៀស)។
- របៀបបង្កើតបញ្ជីទម្លាក់ចុះសាមញ្ញក្នុងក្រឡាសន្លឹក Excel
- បញ្ជីទម្លាក់ចុះជាមួយមាតិកា
- បញ្ជីទម្លាក់ចុះជាមួយជម្រើសដែលបាត់ត្រូវបានបន្ថែម
- តើម៉ាក្រូជាអ្វី របៀបប្រើពួកវា កន្លែងដែលត្រូវបញ្ចូលកូដម៉ាក្រូក្នុង Visual Basic