Кумулятивтік ұяшық (кумулятивті)

Мазмұны

Көбінесе бір ұяшыққа дәйекті түрде енгізілген бірнеше мәндерді жинақтау (жинақтау) қажет болғанда жағдай туындайды:

Анау. егер, мысалы, A1 ұяшығына 5 санын енгізсеңіз, онда 1 саны B15 ұяшығына шығуы керек. Содан кейін A1 ішіне 7 санын енгізсеңіз, B1 ұяшығында 22 пайда болуы керек және т.б. Жалпы алғанда, бухгалтерлер (тек олар ғана емес) жиынтық қорытынды деп атайды.

Қарапайым макрос көмегімен мұндай сақтау ұяшығы-аккумуляторын жүзеге асыруға болады. A1 және B1 ұяшықтары орналасқан парақ қойындысын тінтуірдің оң жақ түймешігімен басып, контекстік мәзірден таңдаңыз Бастапқы мәтін (бастапқы код). Ашылатын Visual Basic редакторының терезесінде қарапайым макрокодты көшіріп, қойыңыз:

Private Sub Worksheet_Change(Excel.Range ретінде Vaal Мақсаты) Мақсаты бар болса, .Address(False, False) = "A1" болса, онда IsNumeric(.Value) болса, Application.EnableEvents = False Range("A2").Value = Ауқым(" A2").Value + .Value Application.EnableEvents = True End If End If End In End Sub.  

A1 және A2 ұяшықтарының мекенжайлары, әрине, өз мекенжайларымен ауыстырылуы мүмкін.

Деректердің енгізілуін қадағалау және жеке ұяшықтарды емес, бүкіл ауқымдарды қорытындылау қажет болса, онда макросты сәл өзгерту керек болады:

Private Sub Worksheet_Change(Excel.Range ретінде Vaal нысанасы бойынша) Егер қиылыспаса(Нысана, Ауқым("A1:A10")) Егер Сандық(Мақсатты.Мән) болса, онда Application.EnableEvents = False Target.Offset(0, 1) ештеңе болмайды. .Мән = Мақсат.Офсет(0, 1).Мән + Мақсат.Мән Қолданба.EnableEvents = Аяқтау болса, соңы ішкі  

Деректер A1:A10 диапазонының ұяшықтарына енгізіледі деп болжанады, ал енгізілген сандар оң жақтағы көрші бағанаға жинақталады. Егер сіздің жағдайыңызда ол іргелес болмаса, Офсет операторында оңға жылжытуды көбейтіңіз – 1 санын үлкенірек санмен ауыстырыңыз.

  • Макростар дегеніміз не, VBA-да макрокодты қайда енгізу керек, оларды қалай пайдалануға болады?

пікір қалдыру