კუმულაციური უჯრედი (კუმულაციური)

შინაარსი

ხშირად ჩნდება სიტუაცია, როდესაც ჩვენ გვჭირდება ერთ უჯრედში თანმიმდევრულად შეყვანილი რამდენიმე მნიშვნელობის შეჯამება (დაგროვება):

იმათ. თუ, მაგალითად, შეიყვანეთ ნომერი 1 უჯრედში A5, მაშინ ნომერი 1 უნდა გამოჩნდეს B15-ში. თუ შემდეგ შეიყვანთ რიცხვს 1 A7-ში, მაშინ 1 უნდა გამოჩნდეს B22 უჯრედში და ა.შ. ზოგადად, რასაც ბუღალტერები (და არა მარტო ისინი) უწოდებენ კუმულატიურ ჯამს.

თქვენ შეგიძლიათ განახორციელოთ ასეთი საცავის უჯრედ-აკუმულატორი მარტივი მაკროს გამოყენებით. დააწკაპუნეთ მარჯვენა ღილაკით ფურცლის ჩანართზე, სადაც A1 და B1 უჯრედებია განთავსებული და აირჩიეთ კონტექსტური მენიუდან საწყისი ტექსტი (Საწყისი კოდი). Visual Basic რედაქტორის ფანჯარაში, რომელიც იხსნება, დააკოპირეთ და ჩასვით მარტივი მაკრო კოდი:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) სამიზნით If .Address(False, False) = "A1" then If IsNumeric(.Value) then 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) If Not Intersect(Target, Range("A1:A10")) Is Nothing then If IsNumeric(Target.Value) then 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 დიაპაზონის უჯრედებში, ხოლო შეყვანილი რიცხვები შეჯამებულია მიმდებარე სვეტში მარჯვნივ. თუ თქვენს შემთხვევაში ის არ არის მიმდებარე, მაშინ გაზარდეთ ცვლა მარჯვნივ Offset ოპერატორში - შეცვალეთ 1 უფრო დიდი რიცხვით.

  • რა არის მაკროები, სად ჩავსვათ მაკრო კოდი VBA-ში, როგორ გამოვიყენოთ ისინი?

დატოვე პასუხი