Kumulyativ hüceyrə (kumulyativ)

Mündəricat

Çox vaxt bir hüceyrəyə ardıcıl olaraq daxil edilmiş bir neçə dəyəri toplamaq (toplamaq) lazım olduqda vəziyyət yaranır:

Bunlar. məsələn, A1 xanasına 5 rəqəmini daxil etsəniz, B1-də 15 rəqəmi görünməlidir. Əgər siz A1-də 7 rəqəmini daxil etsəniz, B1 xanasında 22 görünməlidir və s. Ümumiyyətlə, mühasiblərin (və təkcə onlar deyil) məcmu cəmi adlandırdıqları.

Sadə bir makrodan istifadə edərək belə bir yaddaş hüceyrəsi akkumulyatorunu həyata keçirə bilərsiniz. A1 və B1 xanalarının yerləşdiyi vərəq sekmesini sağ klikləyin və kontekst menyusundan seçin Mənbə mətni (Mənbə kodu). Açılan Visual Basic redaktoru pəncərəsində sadə makro kodunu kopyalayın və yapışdırın:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Əgər .Ünvan(Yanlış, Yanlış) = "A1" Əgər IsNumeriksə(.Dəyər) O zaman Application.EnableEvents = False Range("A2").Value = Range(" A2").Dəyər + .Dəyər Tətbiqi.EnableEvents = Sondursa Həqiqi Son.  

A1 və A2 xanalarının ünvanları, əlbəttə ki, öz ünvanınızla əvəz edilə bilər.

Əgər məlumat girişini izləmək və ayrı-ayrı xanaları deyil, bütün diapazonları ümumiləşdirmək lazımdırsa, onda makro bir qədər dəyişdirilməlidir:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Əgər Kəsişmirsə(Hədəf, Diapazon("A1:A10")) Sayısaldırsa(Hədəf.Dəyər) Heç Birşey Deyil O zaman Application.EnableEvents = False Target.Offset(0, 1) .Dəyər = Hədəf.Ofset(0, 1).Dəyər + Hədəf.Dəyər Tətbiqi.EnableEvents = Sondursa Həqiqi Sondur.  

Məlumatların A1:A10 diapazonunun xanalarına daxil edildiyi və daxil edilmiş nömrələrin sağdakı bitişik sütunda cəmləndiyi güman edilir. Əgər sizin vəziyyətinizdə o, bitişik deyilsə, Ofset operatorunda sağa sürüşməni artırın - 1-i daha böyük rəqəmlə əvəz edin.

  • Makrolar nədir, VBA-da makro kodu hara daxil etməli, onlardan necə istifadə etməli?

Cavab yaz