VBA-Solver

Dieses Tutorial zeigt Ihnen, wie Sie das Solver-Add-In in VBA verwenden.

Solver ist ein Add-In, das mit Excel bereitgestellt wird und verwendet wird, um eine Was-wäre-wenn-Analyse durchzuführen, indem alternative Antworten auf eine Formel in einer Zelle basierend auf Werten bereitgestellt werden, die Sie möglicherweise aus anderen Zellen in Ihrer Arbeitsmappe an die Formel übergeben.

Aktivieren des Solver-Add-Ins in Excel

Wähle aus Datei im Excel-Menüband und gehen Sie dann zu Optionen.

Auswählen Add-Ins und klicke auf gehen Schaltfläche neben Excel-Add-Ins.

Stellen Sie sicher, dass Solver-Add-In Option ausgewählt ist.

Klicken Sie alternativ auf das Excel-Add-Ins auf der Entwickler Multifunktionsleiste, um das Dialogfeld Add-Ins aufzurufen.

Aktivieren des Solver-Add-Ins in VBA

Nachdem Sie das Solver-Add-In in Excel aktiviert haben, müssen Sie in Ihrem VBA-Projekt einen Verweis darauf hinzufügen, um es in VBA verwenden zu können.

Stellen Sie sicher, dass Sie in dem VBA-Projekt angeklickt sind, in dem Sie den Solver verwenden möchten. Klicken Sie auf die Extras-Menü und dann weiter Verweise.

Ein Hinweis auf die Solver-Add-In wird Ihrem Projekt hinzugefügt.

Sie können das Solver-Add-In jetzt im VBA-Code verwenden!

Verwenden von Solver-Funktionen in VBA

Wir müssen 3 Solver VBA-Funktionen verwenden, um Solver in VBA zu verwenden. Diese sind SolverOK, SolverAdd, und SolverSolve.

SolverOK

  • SetCell - Optional - dies muss sich auf die Zelle beziehen, die geändert werden muss - es muss eine Formel enthalten. Dies entspricht demZielzelle festlegen Kiste in derSolver-Parameter Dialogbox.
  • MaxMinWert - Optional - Sie können dies auf 1 (Maximieren), 2 (Minimieren) oder 3 einstellen. Dies entspricht der Max, Mindest, undWert Optionen in derSolver-Parameter Dialogbox.
  • Wert von - Optional -Wenn MaxMinValue auf 3 gesetzt ist, müssen Sie dieses Argument angeben.
  • NachÄnderung - Optional -Dies teilt dem Solver mit, welche Zellen er ändern darf, um den erforderlichen Wert zu erreichen. Dies entspricht demDurch Ändern von Variablenzellen Kiste in derSolver-Parameter Dialogbox.
  • Motor - Optional - Dies gibt die Lösungsmethode an, die verwendet werden muss, um zu einer Lösung zu gelangen. 1 für die Simplex-LP-Methode, 2 für die nichtlineare GRG-Methode oder 3 für die evolutionäre Methode. Dies entspricht demWählen Sie eine Lösungsmethode Dropdown-Liste imSolver-Parameter Dialogbox
  • EngineDesc - Optional -Dies ist eine alternative Methode zur Auswahl der Lösungsmethode - hier würden Sie die Zeichenfolgen „Simplex LP“, „GRG Nonlinear“ oder „Evolutionary“ eingeben. Dies entspricht auch demWählen Sie eine Lösungsmethode Dropdown-Liste imSolver-Parameter Dialogbox

SolverHinzufügen

  • CellRef - erforderlich - Dies ist ein Verweis auf eine Zelle oder einen Zellbereich, der geändert werden soll, um das Problem zu lösen.
  • Beziehung - erforderlich - Dies ist eine ganze Zahl, die zwischen 1 und 6 liegen muss und die zulässige logische Beziehung angibt.
    • 1 ist kleiner als (<=)
    • 2 ist gleich (=)
    • 3 ist größer als (>=)
    • 4 muss Endwerte haben, die ganze Zahlen sind.
    • 5 muss Werte zwischen 0 oder 1 haben.
    • 6 muss Endwerte haben, die alle unterschiedlich und ganze Zahlen sind.
  • FormelText - Optional - Die rechte Seite der Einschränkung.

Erstellen eines Solver-Beispiels

Betrachten Sie das folgende Arbeitsblatt.

Im obigen Blatt müssen wir in Monat Nummer eins die Gewinnschwelle ausgleichen, indem wir Zelle B14 auf Null setzen, indem wir die Kriterien in den Zellen F1 bis F6 ändern.

123 TeiltestSolverSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nichtlinear"End Sub

Nachdem Sie die SolverOK-Parameter eingerichtet haben, müssen Sie einige Kriterieneinschränkungen hinzufügen.

1234567 TeiltestSolverSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nichtlinear"'Kriterien hinzufügen - F3 darf nicht kleiner als 8 seinSolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8"'Kriterien hinzufügen - F3 darf nicht kleiner als 5000 seinSolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"End Sub

Nachdem Sie SolverOK und SolverAdd (falls erforderlich) eingestellt haben, können Sie das Problem lösen.

1234567 TeiltestSolverSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nichtlinear"'Kriterien hinzufügen - F3 darf nicht kleiner als 8 sein SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'Kriterien hinzufügen - F3 darf nicht kleiner als 5000 . seinSolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"'eine Lösung finden, indem man das Problem löstSolverSolveEnd Sub

Sobald Sie den Code ausführen, wird das folgende Fenster auf Ihrem Bildschirm angezeigt. Wählen Sie die gewünschte Option (z. B. Beibehalten der Solver-Lösung oder Wiederherstellen der Originalwerte) und klicken Sie auf OK.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave