Michelle megkérdezi,
Azt hiszem, jó irányban járok körkörös hivatkozással. Itt a problémám. Két cellám van,
A1=5
ésB1=5
. Azt akarom tenni, hogy a B1 memorizálja az 5-öt, majd új értéket akarok hozzáadni az A1-hez, mondjuk, hogy az A1 most egyenlő 10. Lehet-e olyan B1 képletem, amely megjegyzi az 5-öt, de a 10-et is hozzáadja? Akkor mostB1=15
?
Általában a körkörös hivatkozások rossz dolog, de néha előnyünkre is felhasználhatók. Itt van a nem makró módja annak, amit meg akar tenni. Csak bizonyos helyzetekben fog működni.
- Az Excel menüben válassza az Eszközök> Beállítások lehetőséget.
- Lépjen a Számítás fülre. Jelölje be az Iterációk jelölőnégyzetet. Módosítsa a maximális ismétlések értékét 1-re.
- Kattintson az OK gombra a beállítások párbeszédpanel bezárásához.
- Írjon be 5-öt az A1 cellába.
- Írja be a 0 értéket a B1 cellába
- Írja be
=A1+B1
a B1 cellába - Most, amikor új értékeket ad meg az A1-ben, a B1 bejegyzés emlékezni fog a régi összegre, és hozzáadja az A1-től kapott értéket.
Itt van a HATALMAS korlátozás. Nem adhat meg más értékeket a lapon! Bármikor, amikor megad egy értéket, vagy a munkalap újraszámításra kerül, az A1-es érték hozzáadódik a B1-es értékhez. Így ha egy csomószor eltalálja az F9-et, akkor figyelni fogja, hogy a B1 5-gyel növekszik minden F9 esetében.
Ennek biztonságosabb módja egy kis eseménykezelő makró. Ezt a kódot hozzá kell adnia a Sheet1 kód ablaktáblájához (feltételezve, hogy az 1. lapon dolgozik). Az eseménykezelő kódja a következő lenne:
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
Ez a kódbit akkor futtatható, amikor egy cella megváltozik a lapon. A Target egy speciális objektumváltozó, amely megmondja, hogy melyik cellát módosították. Az eseménykezelő ellenőrzi, hogy melyik cellát változtatták meg éppen. Ha a cella A1 volt, akkor hozzáadja az A1 értékét a B1 értékhez. Ki kell kapcsolnunk az eseménykezelőket a B1 cseréje közben, hogy az eseménykezelő ne hívja újra magát.