Kumulativna celica (kumulativna)

vsebina

Pogosto se pojavi situacija, ko moramo sešteti (zbrati) več vrednosti, ki so zaporedno vnesene v eno celico:

Tisti. če na primer vnesete številko 1 v celico A5, se mora številka 1 pojaviti v celici B15. Če nato v A1 vnesete številko 7, se mora 1 pojaviti v celici B22 in tako naprej. Na splošno tisto, kar računovodje (pa ne samo oni) imenujejo kumulativni seštevek.

Takšno pomnilniško celico-akumulator lahko implementirate s preprostim makrom. Z desno miškino tipko kliknite zavihek lista, kjer sta celici A1 in B1, in izberite v kontekstnem meniju Izvorno besedilo (izvorna koda). V oknu urejevalnika Visual Basic, ki se odpre, kopirajte in prilepite kodo preprostega 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").Vrednost + .Value Application.EnableEvents = True End If End If End With End Sub  

Naslova celic A1 in A2 seveda lahko zamenjate s svojimi.

Če morate slediti vnosu podatkov in povzemati ne posamezne celice, temveč celotne obsege, bo treba makro nekoliko spremeniti:

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  

Predpostavlja se, da so podatki vneseni v celice obsega A1:A10, vnesena števila pa se seštejejo v sosednjem stolpcu na desni. Če v vašem primeru ni sosednji, potem povečajte premik v desno v operatorju Odmik – zamenjajte 1 z večjim številom.

  • Kaj so makri, kam v VBA vstaviti kodo makra, kako jih uporabljati?

Pustite Odgovori