Korzystanie z cyklicznych odwołań do naszych zalet - porady dotyczące programu Excel

Michelle pyta,

Myślę, że jestem na dobrej drodze z okrągłym odniesieniem. Oto mój problem. Mam dwie komórki A1=5i B1=5. Chcę, żeby B1 zapamiętał 5, a potem chcę dodać nową wartość do A1, powiedzmy, że A1 wynosi teraz 10. Czy mogę mieć wzór B1, który zapamiętuje 5, ale także dodaje 10? Więc teraz B1=15?

Zwykle odwołania cykliczne są złe, ale czasami można je wykorzystać na naszą korzyść. Oto nie-makro sposób robienia tego, co chcesz. Będzie działać tylko w określonych sytuacjach.

  • Z menu programu Excel wybierz Narzędzia> Opcje.
  • Przejdź do zakładki Obliczenia. Zaznacz pole dla Iteracji. Zmień maksymalną liczbę iteracji na 1.
  • Kliknij OK, aby zamknąć okno dialogowe opcji.
  • Wpisz 5 w komórce A1.
  • Wpisz 0 w komórce B1
  • Wprowadź =A1+B1w komórce B1
  • Teraz, gdy wprowadzisz nowe wartości w A1, wpis w B1 zapamięta starą sumę i doda wartość z A1.

Oto OGROMNE ograniczenie. Nie możesz wprowadzić żadnych wartości w innym miejscu arkusza! Za każdym razem, gdy wprowadzisz wartość lub arkusz zostanie ponownie obliczony, wartość w A1 zostanie dodana do wartości w B1. Tak więc, naciskając kilka razy F9, zobaczysz, jak B1 zwiększa się o 5 dla każdego F9.

Bezpieczniejszym sposobem jest użycie małego makra obsługi zdarzeń. Będziesz musiał dodać ten kod do okienka kodu dla Sheet1 (zakładając, że pracujesz na Sheet1). Kod obsługi zdarzeń wyglądałby następująco:

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

Ten fragment kodu jest uruchamiany za każdym razem, gdy komórka zostanie zmieniona w arkuszu. Cel to specjalna zmienna obiektowa, która informuje, która komórka została zmieniona. Program obsługi zdarzeń sprawdza, która komórka została właśnie zmieniona. Jeśli komórka miała wartość A1, doda wartość z A1 do B1. Musimy wyłączyć obsługę zdarzeń podczas zmiany B1, aby program obsługi zdarzeń nie wywoływał siebie ponownie.

Interesujące artykuły...