Komórka skumulowana (skumulowana)

Spis treści

Dość często pojawia się sytuacja, gdy musimy zsumować (zgromadzić) kilka wartości kolejno wprowadzanych do jednej komórki:

Tych. jeśli na przykład wpiszesz cyfrę 1 w komórce A5, to cyfra 1 powinna pojawić się w B15. Jeśli następnie wpiszesz cyfrę 1 w A7, to 1 powinno pojawić się w komórce B22 i tak dalej. Ogólnie rzecz biorąc, co księgowi (i nie tylko oni) nazywają sumą skumulowaną.

Możesz zaimplementować taki akumulator komórek pamięci masowej za pomocą prostego makra. Kliknij prawym przyciskiem myszy kartę arkusza, w której znajdują się komórki A1 i B1 i wybierz z menu kontekstowego Tekst źródłowy (Kod źródłowy). W otwartym oknie edytora Visual Basic skopiuj i wklej prosty kod makra:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target 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  

Adresy komórek A1 i A2 można oczywiście zastąpić własnymi.

Jeśli chcesz śledzić wprowadzanie danych i podsumowywać nie pojedyncze komórki, ale całe zakresy, to makro będzie musiało zostać nieco zmienione:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) jest niczym 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  

Zakłada się, że dane są wprowadzane w komórkach zakresu A1:A10, a wprowadzone liczby są sumowane w sąsiedniej kolumnie po prawej stronie. Jeśli w twoim przypadku nie sąsiaduje, zwiększ przesunięcie w prawo w operatorze Przesunięcie – zastąp 1 większą liczbą.

  • Czym są makra, gdzie wstawić kod makr w VBA, jak z nich korzystać?

Dodaj komentarz