បញ្ជីទម្លាក់ចុះជាមួយជម្រើសច្រើន។

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

សូមក្រឡេកមើលការអនុវត្តធម្មតាមួយចំនួននៃបញ្ជីជ្រើសរើសច្រើនបែបនេះ។

ជម្រើស 1. ផ្ដេក

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

បញ្ជីទម្លាក់ចុះក្នុងក្រឡា C2:C5 ក្នុងឧទាហរណ៍នេះត្រូវបានបង្កើតតាមរបៀបស្តង់ដារ ពោលគឺ

  1. ជ្រើសរើសក្រឡា C2:C5
  2. ផ្ទាំង ឬម៉ឺនុយ ទិន្នន័យ ជ្រើសរើសក្រុម សុពលភាពទិន្នន័យ
  3. នៅក្នុងបង្អួចដែលបើក សូមជ្រើសរើសជម្រើសមួយ។ បញ្ជី និងបញ្ជាក់ជាជួរ ប្រភព ក្រឡាដែលមានទិន្នន័យប្រភពសម្រាប់បញ្ជី 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

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