Come utilizzare Ricerca obiettivo in Visual Basic

Fortunatamente, Goal Seek è completamente integrato nel VBA, quindi scrivere una macro per usarlo è facile.

Passaggio 1

Apri il documento Excel in cui vuoi eseguire la macro Goal Seek.

Passaggio 2

Trova due celle in cui vorresti utilizzare Goal Seek. Il primo deve essere la cella in cui si ha un obiettivo fisso. Il secondo dovrebbe essere il punto in cui si consente a Excel di cambiare per raggiungere l'obiettivo. Il valore della prima cella deve essere una formula basata sulla seconda formula (altrimenti le modifiche apportate da Excel nella seconda cella non hanno importanza, poiché non appariranno nella prima).

Passaggio 3

Apri la finestra Macro. In Excel 2007 o versioni successive, è possibile farlo facendo clic sulla scheda "Visualizza" dell'elenco e quindi facendo clic su "Macro". Nelle versioni precedenti di Excel, fai clic sul menu "Strumenti", scegli "Macro" e quindi "Macro".

Passaggio 4

Inserisci il nome della macro Goal Seek nella finestra Macro e quindi fai clic su "Crea". Questo avvierà il programma Visual Basic per le applicazioni dell'editor e mostrerà il testo della nuova Macro, che apparirà come una subroutine vuota come questa:

Sub MyMacroName () End Sub

Passaggio 5

Crea un intervallo di oggetti che rappresenta la cella per la quale hai un obiettivo noto (la prima cella del passaggio 2). Ad esempio, se si desidera cercare un obiettivo per la cella A1, scrivere:

Dim goalCell As Range goalCell = ThisWorkbook.Worksheet (1) .Range ("A1")

Passaggio 6

Crea un intervallo di oggetti che rappresenta la cella che vuoi modificare in Excel per fare in modo che la prima cella raggiunga la nuova destinazione. Ad esempio, se vuoi che Excel manipoli la cella A2, scrivi:

Dim variableCell As Range variableCell = ThisWorkbook.Worksheet (1) .Range ("A2")

Passaggio 7

Trova il metodo GoalSeek nell'intervallo della cella di destinazione. Come primo argomento, offre il valore su cui si desidera applicare la ricerca obiettivo; come argomento, offre l'intervallo della cella variabile. Ad esempio, se vuoi applicare la ricerca obiettivo a 0, scrivi:

goalCell.GoalSeek (0, variableCell)