Michelle chiede,
Penso di essere sulla strada giusta con un riferimento circolare. Ecco il mio problema. Ho due celle
A1=5
eB1=5
. Quello che voglio fare è che B1 memorizzi 5, quindi voglio aggiungere un nuovo valore ad A1, diciamo A1 ora è uguale a 10. Posso avere una formula B1 che memorizza 5, ma aggiunge anche 10? Quindi adessoB1=15
?
Di solito, i riferimenti circolari sono una cosa negativa, ma a volte possono essere utilizzati a nostro vantaggio. Ecco il modo non macro di fare ciò che vuoi fare. Funzionerà solo in determinate situazioni.
- Dal menu Excel, seleziona Strumenti> Opzioni.
- Vai alla scheda Calcolo. Seleziona la casella per le iterazioni. Modificare il numero massimo di iterazioni in 1.
- Fare clic su OK per chiudere la finestra di dialogo delle opzioni.
- Immettere 5 nella cella A1.
- Immettere 0 nella cella B1
- Entra
=A1+B1
nella cella B1 - Ora, mentre inserisci nuovi valori in A1, la voce in B1 ricorderà il vecchio totale e aggiungerà il valore da A1.
Ecco l'ENORME limitazione. Non puoi inserire alcun valore altrove nel foglio! Ogni volta che si immette un valore o il foglio viene ricalcolato, il valore in A1 verrà aggiunto al valore in B1. Quindi, premendo F9 un sacco di volte, vedrai B1 aumentare di 5 per ogni F9.
Il modo più sicuro per farlo è con una piccola macro del gestore di eventi. Sarà necessario aggiungere questo codice al riquadro del codice per Sheet1 (supponendo che si stia lavorando su Sheet1). Il codice del gestore eventi sarebbe il seguente:
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
Questo bit di codice viene eseguito ogni volta che una cella viene modificata nel foglio. Target è una variabile oggetto speciale che indica quale cella è stata modificata. Il gestore di eventi controlla per vedere quale cella è stata appena modificata. Se la cella era A1, aggiungerà il valore in A1 a B1. Dobbiamo disattivare i gestori di eventi durante la modifica di B1 in modo che il gestore di eventi non si richiami di nuovo.