Кумулятивдүү клетка (кумулятивдүү)

мазмуну

Көбүнчө, бир уячага ырааттуу түрдө киргизилген бир нече баалуулуктарды жыйынтыктоо (топтоо) керек болгон жагдай пайда болот:

Ошол. эгерде, мисалы, сиз A1 уячасына 5 санын киргизсеңиз, анда 1 саны B15те пайда болушу керек. Эгер сиз A1ге 7 санын киргизсеңиз, анда 1 В22 уячасында пайда болушу керек ж.б.у.с. Жалпысынан алганда, кандай бухгалтерлер (жана алар гана эмес) жыйынды жалпы деп аташат.

Жөнөкөй макросту колдонуп, мындай сактоочу клетка-аккумуляторду ишке ашыра аласыз. A1 жана B1 уячалары жайгашкан барак кошумча барагын оң баскыч менен чыкылдатып, контексттик менюдан тандаңыз Булак текст (Булак коду). Ачылган Visual Basic редакторунун терезесинде жөнөкөй макрокодду көчүрүп, чаптаңыз:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Максаты бар If .Address(False, False) = "A1" If If IsNumeric(.Value) then Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = True End If End If End End Sub Sub.  

A1 жана A2 уячаларынын даректери, албетте, өзүңүздүкү менен алмаштырылышы мүмкүн.

Эгер сиз маалыматтардын киришине көз салып, жеке уячаларды эмес, бүт диапазондорду жалпылоо керек болсо, анда макросту бир аз өзгөртүүгө туура келет:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Эгерде Кесилиш болбосо(Максат, Диапазон("A1:A10")) Эч нерсе эмес, Эгерде Сандык(Максат.Баалуу) болсо Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Маалыматтар A1:A10 диапазонунун уячаларына киргизилет деп болжолдонууда, ал эми киргизилген сандар оң жактагы чектеш тилкеде жыйынтыкталат. Эгерде сиздин жагдайыңызда ал чектеш эмес болсо, анда Оффсет операторунда оңго жылдырууну көбөйтүңүз – 1ди чоңураак санга алмаштырыңыз.

  • Макрос деген эмне, VBAга макрокодду кайда киргизүү керек, аларды кантип колдонуу керек?

Таштап Жооп