Risolutore VBA

Questo tutorial ti mostrerà come utilizzare il componente aggiuntivo Risolutore in VBA.

Risolutore è un componente aggiuntivo fornito con Excel e viene utilizzato per eseguire analisi "what-if" fornendo risposte alternative a una formula in una cella in base a valori che è possibile passare alla formula da altre celle nella cartella di lavoro.

Abilitazione del componente aggiuntivo Risolutore in Excel

Seleziona il File sulla barra multifunzione di Excel e poi scendi su Opzioni.

Selezionare Componenti aggiuntivi e clicca su andare accanto a Componenti aggiuntivi di Excel.

Assicurati che Componente aggiuntivo Risolutore l'opzione è selezionata.

In alternativa, clicca su Componenti aggiuntivi di Excel sul Sviluppatore barra multifunzione per ottenere la finestra di dialogo Componenti aggiuntivi.

Abilitazione del componente aggiuntivo Risolutore in VBA

Dopo aver abilitato il componente aggiuntivo Risolutore in Excel, è necessario aggiungere un riferimento ad esso nel progetto VBA per utilizzarlo in VBA.

Assicurati di essere cliccato nel Progetto VBA in cui desideri utilizzare il Risolutore. Clicca sul Menu Strumenti e poi su Riferimenti.

Un riferimento al Componente aggiuntivo Risolutore verrà aggiunto al tuo progetto.

Ora puoi utilizzare il componente aggiuntivo Risolutore nel codice VBA!

Utilizzo delle funzioni del risolutore in VBA

Abbiamo bisogno di usare 3 funzioni VBA del Risolutore per usare Risolutore in VBA. Questi sono RisolutoreOK, RisolutoreAggiungi, e RisolutoreRisolvi.

RisolutoreOK

  • ImpostaCella - opzionale - questo deve fare riferimento alla cella che deve essere modificata - deve contenere una formula. Questo corrisponde aImposta cella obiettivo scatola nelParametri del risolutore la finestra di dialogo.
  • MaxMinVal - opzionale - È possibile impostarlo su 1 (Ingrandisci), 2 (Riduci a icona) o 3. Ciò corrisponde a Max, min, eValore opzioni nelParametri del risolutore la finestra di dialogo.
  • Valore di - opzionale -Se MaxMinValue è impostato su 3, è necessario fornire questo argomento.
  • PerCambiamento - opzionale -Questo dice al risolutore quali celle può cambiare per ottenere il valore richiesto. Questo corrisponde aModificando le celle variabili scatola nelParametri del risolutore la finestra di dialogo.
  • Motore - opzionale - indica il metodo risolutivo da utilizzare per arrivare a una soluzione. 1 per il metodo Simplex LP, 2 per il metodo GRG Non lineare, o 3 per il metodo Evolutivo. Questo corrisponde aSeleziona un metodo di risoluzione elenco a discesa nelParametri del risolutore la finestra di dialogo
  • EngineDesc - opzionale -questo è un modo alternativo per selezionare il metodo di risoluzione - qui dovresti digitare le stringhe “Simplex LP”, “GRG Nonlinear” o “Evolutionary”. Questo corrisponde anche aSeleziona un metodo di risoluzione elenco a discesa nelParametri del risolutore la finestra di dialogo

RisolutoreAggiungi

  • CellRef - necessario - questo è un riferimento a una cella oa un intervallo di celle che devono essere modificati per risolvere il problema.
  • Relazione - necessario - è un numero intero che deve essere compreso tra 1 e 6 e specifica la relazione logica consentita.
    • 1 è minore di (<=)
    • 2 è uguale a (=)
    • 3 è maggiore di (>=)
    • 4 deve avere valori finali che sono interi.
    • 5 deve avere valori compresi tra 0 o 1.
    • 6 deve avere valori finali tutti diversi e interi.
  • FormulaTesto - opzionale - Il lato destro del vincolo.

Creazione di un esempio di risolutore

Considera il seguente foglio di lavoro.

Nel foglio sopra, dobbiamo rompere anche nel mese numero uno impostando la cella B14 su zero modificando i criteri nelle celle da F1 a F6.

123 Risolutore di test secondariSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Non lineare"Fine sottotitolo

Una volta impostati i parametri di SolverOK, è necessario aggiungere alcune restrizioni ai criteri.

1234567 Risolutore di test secondariSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Non lineare"'aggiungi criteri - F3 non può essere inferiore a 8RisolutoreAdd CellRef:="$F$3", Relazione:=3, FormulaText:="8"'aggiungi criteri - F3 non può essere inferiore a 5000RisolutoreAdd CellRef:="$F$5", Relazione:=3, FormulaText:="5000"Fine sottotitolo

Dopo aver impostato SolverOK e SolverAdd (se richiesto), è possibile Risolvere il problema.

1234567 Risolutore di test secondariSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Non lineare"'aggiungi criteri - F3 non può essere inferiore a 8 SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'aggiungi criteri - F3 non può essere inferiore a 5000RisolutoreAdd CellRef:="$F$5", Relazione:=3, FormulaText:="5000"'trova una soluzione risolvendo il problemaRisolutoreRisolviFine sottotitolo

Una volta eseguito il codice, sullo schermo verrà visualizzata la seguente finestra. Selezionare l'opzione richiesta (ad es. Mantieni la soluzione del Risolutore o Ripristina i valori originali) e fare clic su OK.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave