Kumulatiewe sel (kumulatief)

Contents [show]

Dikwels ontstaan ​​'n situasie wanneer ons verskeie waardes moet opsom (ophoop) wat opeenvolgend in een sel ingevoer is:

Dié. as jy byvoorbeeld die nommer 1 in sel A5 invoer, dan moet die nommer 1 in B15 verskyn. As jy dan die nommer 1 in A7 invoer, dan moet 1 in sel B22 verskyn, ensovoorts. Oor die algemeen, wat rekenmeesters (en nie net hulle nie) 'n kumulatiewe totaal noem.

Jy kan so 'n bergingsel-akkumulator implementeer deur 'n eenvoudige makro te gebruik. Regskliek op die bladoortjie waar selle A1 en B1 geleë is en kies uit die kontekskieslys Bronteks (Bronkode). Kopieer en plak die eenvoudige makro-kode in die Visual Basic-redigeerdervenster wat oopmaak:

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

Die adresse van selle A1 en A2 kan natuurlik met jou eie vervang word.

As jy data-invoer moet naspoor en nie individuele selle moet opsom nie, maar hele reekse, dan sal die makro effens verander moet word:

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  

Daar word aanvaar dat data in die selle van die reeks A1:A10 ingevoer word, en die ingevoerde getalle word in die aangrensende kolom aan die regterkant opgesom. As dit in jou geval nie langsaan is nie, verhoog dan die skuif na regs in die Offset-operateur – vervang 1 met 'n groter getal.

  • Wat is makro's, waar om makro-kode in VBA in te voeg, hoe om dit te gebruik?

Lewer Kommentaar