Kumulativ cell (kumulativ)

Innehåll

Ganska ofta uppstår en situation när vi behöver summera (ackumulera) flera värden sekventiellt inmatade i en cell:

De där. om du till exempel anger siffran 1 i cell A5, så ska siffran 1 visas i B15. Om du sedan anger siffran 1 i A7, så ska 1 visas i cell B22, och så vidare. I allmänhet, vad revisorer (och inte bara dem) kallar en kumulativ summa.

Du kan implementera en sådan lagringscell-ackumulator med ett enkelt makro. Högerklicka på arkfliken där cellerna A1 och B1 finns och välj från snabbmenyn Källtext (Källkod). Kopiera och klistra in den enkla makrokoden i Visual Basic-redigeringsfönstret som öppnas:

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  

Adresserna till cellerna A1 och A2 kan naturligtvis ersättas med din egen.

Om du behöver spåra datainmatning och inte sammanfatta enskilda celler, utan hela intervall, måste makrot ändras något:

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  

Det antas att data skrivs in i cellerna i området A1:A10, och de inmatade siffrorna summeras i den intilliggande kolumnen till höger. Om det i ditt fall inte är intill, öka växlingen till höger i Offset-operatören – ersätt 1 med ett större nummer.

  • Vad är makron, var man infogar makrokod i VBA, hur använder man dem?

Kommentera uppropet