Solver VBA

Ten samouczek pokaże Ci, jak korzystać z dodatku Solver w VBA.

Dodatek Solver jest dostarczany z programem Excel i służy do wykonywania analizy typu „co, jeśli” poprzez dostarczanie alternatywnych odpowiedzi do formuły w komórce na podstawie wartości, które możesz przekazać do formuły z innych komórek w skoroszycie.

Włączanie dodatku Solver w programie Excel

Wybierz Plik na wstążce programu Excel, a następnie przejdź do Opcje.

Wybierz Dodatki i kliknij Udać się przycisk obok Dodatki programu Excel.

Upewnij się, że Dodatek Solver wybrana jest opcja.

Alternatywnie, kliknij Dodatki do programu Excel na Deweloper wstążki, aby uzyskać okno dialogowe Dodatki.

Włączanie dodatku Solver w VBA

Po włączeniu dodatku Solver w programie Excel należy dodać odwołanie do niego w projekcie VBA, aby używać go w VBA.

Upewnij się, że kliknięto w projekcie VBA, w którym chcesz użyć dodatku Solver. Kliknij na Menu narzędzi a potem dalej Bibliografia.

Odniesienie do Dodatek Solver zostanie dodany do Twojego projektu.

Możesz teraz używać dodatku Solver w kodzie VBA!

Korzystanie z funkcji dodatku Solver w VBA

Aby używać Solvera w VBA, musimy użyć 3 funkcji Solver VBA. To są SolverOK, SolverDodaj, oraz RozwiążRozwiąż.

SolverOK

  • Ustaw komórkę - opcjonalny - musi odnosić się do komórki, którą należy zmienić - musi zawierać formułę. Odpowiada toUstaw komórkę celu pudełko wParametry solvera Okno dialogowe.
  • MaxMinVal - opcjonalny - Możesz ustawić to na 1 (Maksymalizuj), 2 (Minimalizuj) lub 3. Odpowiada to Maks., Min, orazWartość opcje wParametry solvera Okno dialogowe.
  • Wartość - opcjonalny -Jeśli MaxMinValue jest ustawiona na 3, musisz podać ten argument.
  • WgZmiany - opcjonalny -To mówi solverowi, które komórki może zmienić, aby uzyskać wymaganą wartość. Odpowiada toZmieniając komórki zmiennych pudełko wParametry solvera Okno dialogowe.
  • Silnik - opcjonalny - wskazuje metodę rozwiązywania, którą należy zastosować, aby uzyskać rozwiązanie. 1 dla metody Simplex LP, 2 dla metody nieliniowej GRG lub 3 dla metody ewolucyjnej. Odpowiada toWybierz metodę rozwiązywania rozwijana lista wParametry solvera Okno dialogowe
  • Opis silnika - opcjonalny -jest to alternatywny sposób wyboru metody rozwiązywania - tutaj należy wpisać ciągi „Simplex LP”, „GRG Nonlinear” lub „Evolutionary”. Odpowiada to równieżWybierz metodę rozwiązywania rozwijana lista wParametry solvera Okno dialogowe

SolverDodaj

  • KomórkaRef - wymagany - jest to odwołanie do komórki lub zakresu komórek, które mają zostać zmienione, aby rozwiązać problem.
  • Relacja - wymagany - jest to liczba całkowita, która musi zawierać się w przedziale od 1 do 6 i określa dozwoloną relację logiczną.
    • 1 to mniej niż (<=)
    • 2 jest równe (=)
    • 3 jest większe niż (>=)
    • 4 to musi mieć końcowe wartości, które są liczbami całkowitymi.
    • 5 musi mieć wartości od 0 do 1.
    • 6 musi mieć końcowe wartości, które są różne i są liczbami całkowitymi.
  • Tekst formuły - opcjonalny - Prawa strona ograniczenia.

Tworzenie przykładu solvera

Rozważ poniższy arkusz.

W powyższym arkuszu musimy wyrównać w miesiącu numer jeden, ustawiając komórkę B14 na zero, zmieniając kryteria w komórkach od F1 do F6.

123 SubtestSolverSolverOk SetCell:="$B14$", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"Napis końcowy

Po skonfigurowaniu parametrów SolverOK należy dodać pewne ograniczenia kryteriów.

1234567 SubtestSolverSolverOk SetCell:="$B14$", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"„dodaj kryteria - F3 nie może być mniejszy niż 8”SolverAdd CellRef:="$ F$3", Relacja:=3, Formuła Tekst:="8"'dodaj kryteria - F3 nie może być mniejszy niż 5000SolverAdd CellRef: = "$ F $ 5", Relacja: = 3, Formuła Tekst: = "5000"Napis końcowy

Po ustawieniu SolverOK i SolverAdd (jeśli jest to wymagane), możesz rozwiązać problem.

1234567 SubtestSolverSolverOk SetCell:="$B14$", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'dodaj kryteria - F3 nie może być mniejsze niż 8 SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'dodaj kryteria - F3 nie może być mniejsze niż 5000SolverAdd CellRef: = "$ F $ 5", Relacja: = 3, Formuła Tekst: = "5000"„znajdź rozwiązanie, rozwiązując problem”RozwiążRozwiążNapis końcowy

Po uruchomieniu kodu na ekranie pojawi się następujące okno. Wybierz żądaną opcję (np. Zachowaj rozwiązanie dodatku Solver lub Przywróć oryginalne wartości) i kliknij OK.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave