ជាញឹកញយ ស្ថានភាពមួយកើតឡើងនៅពេលដែលយើងត្រូវការបូកសរុប (ប្រមូលផ្តុំ) តម្លៃជាច្រើនដែលបានបញ្ចូលជាបន្តបន្ទាប់ទៅក្នុងក្រឡាមួយ៖
ទាំងនោះ។ ឧទាហរណ៍ ប្រសិនបើអ្នកបញ្ចូលលេខ 1 ក្នុងក្រឡា A5 នោះលេខ 1 គួរតែបង្ហាញនៅក្នុង B15 ។ ប្រសិនបើអ្នកបញ្ចូលលេខ 1 ក្នុង A7 នោះលេខ 1 គួរតែលេចឡើងក្នុងក្រឡា B22 ហើយដូច្នេះនៅលើ។ ជាទូទៅអ្វីដែលអ្នកគណនេយ្យករ (មិនត្រឹមតែពួកគេប៉ុណ្ណោះទេ) ហៅថាចំនួនសរុប។
អ្នកអាចអនុវត្តឧបករណ៍ផ្ទុកកោសិកាដូចនេះដោយប្រើម៉ាក្រូសាមញ្ញ។ ចុចកណ្ដុរស្ដាំលើផ្ទាំងសន្លឹកដែលក្រឡា A1 និង B1 មានទីតាំងនៅ ហើយជ្រើសរើសពីម៉ឺនុយបរិបទ ប្រភពអត្ថបទ (ប្រភពកូដ). នៅក្នុងបង្អួចកម្មវិធីនិពន្ធ Visual Basic ដែលបើក ចម្លង និងបិទភ្ជាប់កូដម៉ាក្រូសាមញ្ញ៖
Private Sub Worksheet_Change(ByVal Target As Excel.Range) ជាមួយនឹងគោលដៅប្រសិនបើ .Address(False, False) = "A1" បន្ទាប់មកប្រសិនបើ IsNumeric.Value) បន្ទាប់មក Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = True End If End If End With End Sub
អាសយដ្ឋាននៃក្រឡា A1 និង A2 អាចត្រូវបានជំនួសដោយខ្លួនអ្នកផ្ទាល់។
ប្រសិនបើអ្នកត្រូវការតាមដានការបញ្ចូលទិន្នន័យ និងសង្ខេបមិនមែនជាកោសិកានីមួយៗ ប៉ុន្តែជួរទាំងមូល នោះម៉ាក្រូនឹងត្រូវផ្លាស់ប្តូរបន្តិច៖
Private Sub Worksheet_Change(ByVal Target As Excel.Range) ប្រសិនបើមិនប្រសព្វ(Target, Range("A1:A10"))) គ្មានអ្វីទេប្រសិនបើ IsNumeric(Target.Value) បន្ទាប់មក Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub
វាត្រូវបានសន្មត់ថាទិន្នន័យត្រូវបានបញ្ចូលក្នុងក្រឡានៃជួរ A1:A10 ហើយលេខដែលបានបញ្ចូលត្រូវបានបូកសរុបនៅក្នុងជួរឈរដែលនៅជាប់គ្នានៅខាងស្តាំ។ ប្រសិនបើក្នុងករណីរបស់អ្នកវាមិននៅជាប់គ្នាទេនោះ សូមបង្កើនការផ្លាស់ប្តូរទៅខាងស្តាំនៅក្នុងប្រតិបត្តិករអុហ្វសិត - ជំនួសលេខ 1 ដោយលេខធំជាង។
- តើម៉ាក្រូជាអ្វី កន្លែងដែលត្រូវបញ្ចូលកូដម៉ាក្រូក្នុង VBA របៀបប្រើពួកវា?