Коришћење кружних референци за нашу предност - Екцел савети

Мицхелле пита,

Мислим да сам на добром путу са кружном референцом. Ево мог проблема. Имам две ћелије A1=5и B1=5. Оно што желим је да Б1 запамти 5, а затим желим да додам нову вредност А1, рецимо да је А1 сада једнако 10. Могу ли да добијем формулу Б1 која памти 5, али такође додаје 10? Па сада B1=15?

Обично су кружне референце лоше, али понекад се могу користити у нашу корист. Овде је немакро начин на који можете да радите оно што желите. То ће функционисати само у одређеним ситуацијама.

  • У Екцел менију изаберите Тоолс> Оптионс.
  • Идите на картицу Калкулација. Означите поље за понављања. Промените максимално понављање у 1.
  • Кликните на дугме У реду да бисте затворили дијалог са опцијама.
  • Унесите 5 у ћелију А1.
  • Унесите 0 у ћелију Б1
  • Унесите =A1+B1у ћелију Б1
  • Сада, док уносите нове вредности у А1, унос у Б1 памтиће стари укупан број и додати вредност из А1.

Ево ВЕЛИКОГ ограничења. Не можете унети никакве вредности било где другде на листу! Сваки пут када унесете вредност или се лист прерачуна, вредност у А1 биће додата вредности у Б1. Тако ћете, ударајући Ф9 неколико пута, гледати како се Б1 повећава за 5 за сваки Ф9.

Безбеднији начин да то урадите је мали макро за обраду догађаја. Морат ћете додати овај код у окно кода за Схеет1 (под претпоставком да радите на Схеет1). Код руковаоца догађајима био би следећи:

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = “$A$1” Then Application.EnableEvents = False Range(“B1”).Value = Range(“B1”).Value + Target.Value Application.EnableEvents = True End If End Sub

Овај бит кода се покреће сваки пут када се ћелија промени на листу. Циљ је посебна променљива објекта која говори која је ћелија промењена. Обрађивач догађаја проверава која је ћелија управо промењена. Ако је ћелија била А1, тада ће вредност у А1 додати у Б1. Морамо да искључимо обрађиваче догађаја док мењамо Б1 да се обрађивач догађаја не би поново позвао.

Занимљиви Чланци...