VBA Solver

Denne vejledning viser dig, hvordan du bruger tilføjelsesprogrammet Solver i VBA.

Solver er et tilføjelsesprogram, der leveres med Excel og bruges til at udføre 'hvad-hvis'-analyse ved at give alternative svar til en formel i en celle baseret på værdier, som du kan overføre til formlen fra andre celler i din projektmappe.

Aktivering af tilføjelsesprogrammet Solver i Excel

Vælg Fil på Excel -båndet og derefter gå ned til Muligheder.

Vælg Tilføjelser og klik på knappen ved siden af ​​Excel-tilføjelser.

Sørg for, at Tilføjelsesprogram til løsning indstilling er valgt.

Alternativt kan du klikke på Excel-tilføjelser på den Udvikler båndet for at få dialogboksen Tilføjelser.

Aktivering af Solver-tilføjelsen i VBA

Når du har aktiveret Solver-tilføjelsen i Excel, skal du derefter tilføje en reference til den i dit VBA-projekt for at kunne bruge den i VBA.

Sørg for, at du er klikket i VBA -projektet, hvor du vil bruge Solver. Klik på Værktøjsmenu og så videre Referencer.

En henvisning til Tilføjelsesprogram til løsning vil blive føjet til dit projekt.

Du kan nu bruge Solver-tilføjelsen i VBA-kode!

Brug af Solver -funktioner i VBA

Vi skal bruge 3 Solver VBA -funktioner for at bruge Solver i VBA. Disse er SolverOK, SolverAdd, og SolverLøs.

LøserOK

  • SetCell - valgfri - dette skal referere til den celle, der skal ændres - den skal indeholde en formel. Dette svarer tilIndstil målcelle boks iLøserparametre dialog boks.
  • MaxMinVal - valgfri - Du kan indstille dette til 1 (Maksimer), 2 (Minimer) eller 3. Dette svarer til Maks, Min, ogVærdi muligheder iLøserparametre dialog boks.
  • Værdi af - valgfri -Hvis MaxMinValue er indstillet til 3, skal du angive dette argument.
  • Ved ændring - valgfri -Dette fortæller solver, hvilke celler det kan ændre for at nå den nødvendige værdi. Dette svarer tilVed at ændre variable celler boks iLøserparametre dialog boks.
  • Motor - valgfri - dette angiver den løsningsmetode, der skal bruges for at komme til en løsning. 1 til Simplex LP -metoden, 2 til GRG -ikke -lineær metode eller 3 til den evolutionære metode. Dette svarer tilVælg en løsningsmetode rulleliste iLøserparametre dialog boks
  • MotorDesc - valgfri -Dette er en alternativ måde at vælge løsningsmetoden på - her vil du skrive strengene "Simplex LP", "GRG Nonlinear" eller "Evolutionary". Dette svarer også tilVælg en løsningsmetode rulleliste iLøserparametre dialog boks

Solver Tilføj

  • CellRef - påkrævet - dette er en reference til en celle eller en række celler, der skal ændres for at løse problemet.
  • Forhold - påkrævet - dette er et helt tal, der skal være mellem 1 og 6 og angiver den tilladte logiske relation.
    • 1 er mindre end (<=)
    • 2 er lig med (=)
    • 3 er større end (> =)
    • 4 er skal have slutværdier, der er heltal.
    • 5 er skal have værdier mellem 0 eller 1.
    • 6 er skal have slutværdier, der alle er forskellige og heltal.
  • FormulaText - valgfri - Højre side af begrænsningen.

Oprettelse af et løsningseksempel

Overvej følgende regneark.

I arket ovenfor skal vi bryde lige i måned nummer et ved at indstille celle B14 til nul ved at ændre kriterierne i cellerne F1 til F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"Afslut Sub

Når du har konfigureret SolverOK -parametrene, skal du tilføje nogle kriterierestriktioner.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'tilføj kriterier - F3 må ikke være mindre end 8SolverAdd CellRef: = "$ F $ 3", Relation: = 3, FormulaText: = "8"'tilføj kriterier - F3 må ikke være mindre end 5000SolverAdd CellRef: = "$ F $ 5", Relation: = 3, FormulaText: = "5000"Afslut Sub

Når du har indstillet SolverOK og SolverAdd (hvis det kræves), kan du løse problemet.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'tilføj kriterier - F3 kan ikke være mindre end 8 SolverAdd CellRef: = "$ F $ 3", Relation: = 3, FormulaText: = "8"' tilføj kriterier - F3 må ikke være mindre end 5000SolverAdd CellRef: = "$ F $ 5", Relation: = 3, FormulaText: = "5000"'finde en løsning ved at løse problemetSolverLøsAfslut Sub

Når du kører koden, vises følgende vindue på din skærm. Vælg den ønskede indstilling (dvs. Behold Solver -løsningen eller Gendan originale værdier), og klik på OK.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave