VBA-oplosser

Deze tutorial laat je zien hoe je de Oplosser-invoegtoepassing in VBA gebruikt.

Oplosser is een invoegtoepassing die bij Excel wordt geleverd en wordt gebruikt om 'wat-als'-analyses uit te voeren door alternatieve antwoorden te geven op een formule in een cel op basis van waarden die u vanuit andere cellen in uw werkmap aan de formule kunt doorgeven.

De Oplosser-invoegtoepassing inschakelen in Excel

Selecteer de Bestand op het Excel-lint en ga vervolgens naar: Opties.

Selecteer Invoegtoepassingen en klik op de Gaan knop naast Excel-invoegtoepassingen.

Zorg ervoor dat de Oplosser-invoegtoepassing optie is geselecteerd.

Of klik op de Excel-invoegtoepassingen op de Ontwikkelaar lint om het dialoogvenster Invoegtoepassingen te openen.

De Oplosser-invoegtoepassing inschakelen in VBA

Nadat u de Solver-invoegtoepassing in Excel hebt ingeschakeld, moet u er een verwijzing naar toevoegen in uw VBA-project om deze in VBA te gebruiken.

Zorg ervoor dat u bent geklikt in het VBA-project waar u de Oplosser wilt gebruiken. Klik op de Extra menu en dan verder Referenties.

Een verwijzing naar de Oplosser-invoegtoepassing wordt aan uw project toegevoegd.

U kunt nu de Solver-invoegtoepassing in VBA-code gebruiken!

Oplosserfuncties gebruiken in VBA

We moeten 3 Oplosser VBA-functies gebruiken om Oplosser in VBA te gebruiken. Dit zijn OplosserOK, OplosserToevoegen, en OplosserOplossen.

OplosserOK

  • SetCell - optioneel - dit moet verwijzen naar de cel die moet worden gewijzigd - het moet een formule bevatten. Dit komt overeen met deDoelcel instellen doos in deOplosserparameters: dialoog venster.
  • MaxMinVal - optioneel - U kunt dit instellen op 1 (Maximaliseren), 2 (Minimaliseren) of 3. Dit komt overeen met de Max, Min, enWaarde opties in deOplosserparameters: dialoog venster.
  • Waarde van - optioneel -Als de MaxMinValue is ingesteld op 3, moet u dit argument opgeven.
  • Bij verandering - optioneel -Dit vertelt de oplosser welke cellen het mag veranderen om de vereiste waarde te krijgen. Dit komt overeen met deDoor variabele cellen te wijzigen doos in deOplosserparameters: dialoog venster.
  • Motor - optioneel - dit geeft de oplossingsmethode aan die gebruikt moet worden om tot een oplossing te komen. 1 voor de Simplex LP-methode, 2 voor de GRG Niet-lineaire methode, of 3 voor de Evolutionaire methode. Dit komt overeen met deSelecteer een oplossingsmethode vervolgkeuzelijst in deOplosserparameters: dialoog venster
  • MotorBeschrijving - optioneel - dit is een alternatieve manier om de oplossingsmethode te selecteren - hier typt u de tekenreeksen "Simplex LP", "GRG Nonlinear" of "Evolutionary". Dit komt ook overeen met deSelecteer een oplossingsmethode vervolgkeuzelijst in deOplosserparameters: dialoog venster

OplosserToevoegen

  • CellRef - verplicht - dit is een verwijzing naar een cel of een reeks cellen die moeten worden gewijzigd om het probleem op te lossen.
  • Relatie - verplicht - dit is een geheel getal dat tussen 1 en 6 moet liggen en specificeert de toegestane logische relatie.
    • 1 is kleiner dan (<=)
    • 2 is gelijk aan (=)
    • 3 is groter dan (>=)
    • 4 moet eindwaarden hebben die gehele getallen zijn.
    • 5 moet waarden hebben tussen 0 of 1.
    • 6 moet eindwaarden hebben die allemaal verschillend zijn en gehele getallen.
  • FormuleTekst - optioneel - De rechterkant van de beperking.

Een Oplosser-voorbeeld maken

Beschouw het volgende werkblad.

In het bovenstaande blad moeten we break-even maken in maand nummer één door cel B14 op nul te zetten door de criteria in cellen F1 tot F6 te wijzigen.

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

Nadat u de SolverOK-parameters hebt ingesteld, moet u enkele criteriabeperkingen toevoegen.

1234567 Sub TestOplosserSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'criteria toevoegen - F3 kan niet kleiner zijn dan 8'SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8"'criteria toevoegen - F3 kan niet kleiner zijn dan 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"Einde sub

Nadat u de SolverOK en de SolverAdd (indien nodig) hebt ingesteld, kunt u het probleem oplossen.

1234567 Sub TestOplosserSolverOk SetCell:="$B$14", MaxMinVal:=3, ValueOf:=0, ByChange:="$F$2:$F$6", Engine:=1, EngineDesc:="GRG Nonlinear"'criteria toevoegen - F3 kan niet kleiner zijn dan 8 SolverAdd CellRef:="$F$3", Relation:=3, FormulaText:="8" 'criteria toevoegen - F3 kan niet kleiner zijn dan 5000SolverAdd CellRef:="$F$5", Relation:=3, FormulaText:="5000"'een oplossing vinden door het probleem op te lossen'OplosserOplossenEinde sub

Nadat u de code hebt uitgevoerd, wordt het volgende venster op uw scherm weergegeven. Selecteer de gewenste optie (dwz de Oplosser-oplossing behouden of Oorspronkelijke waarden herstellen) en klik op OK.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave