Denne opplæringen viser deg hvordan du bruker Solver-tillegget i VBA.
Solver er et tillegg som følger med Excel og brukes til å utføre "hva-om" -analyse ved å gi alternative svar på en formel i en celle basert på verdier som du kan overføre til formelen fra andre celler i arbeidsboken.
Aktiverer Solver-tillegget i Excel
Velg Fil på Excel -båndet og gå deretter ned til Alternativer.
Plukke ut Tillegg og klikk på Gå -knappen ved siden av Excel-tillegg.
Sørg for at Løser-tillegg alternativet er valgt.
Alternativt kan du klikke på Excel-tillegg på Utvikler båndet for å få dialogboksen Tillegg.
Aktiverer Solver-tillegget i VBA
Når du har aktivert Solver-tillegget i Excel, må du legge til en referanse til det i VBA-prosjektet for å bruke det i VBA.
Sørg for at du er klikket i VBA -prosjektet der du ønsker å bruke Solver. Klikk på Verktøy -menyen og så videre Referanser.
En referanse til Løser-tillegg vil bli lagt til i prosjektet ditt.
Du kan nå bruke Solver-tillegget i VBA-koden!
Bruke løsningsfunksjoner i VBA
Vi må bruke 3 Solver VBA -funksjoner for å bruke Solver i VBA. Disse er SolverOK, SolverAdd, og SolverLøs.
SolverOK
- SetCell - valgfri - dette må referere til cellen som må endres - den må inneholde en formel. Dette tilsvarerAngi målcelle boksen iLøserparametere dialogboks.
- MaxMinVal - valgfri - Du kan sette dette til 1 (Maksimer), 2 (Minimer) eller 3. Dette tilsvarer Maks, Min, ogVerdi alternativer iLøserparametere dialogboks.
- Verdien av - valgfri -Hvis MaxMinValue er satt til 3, må du oppgi dette argumentet.
- ByChange - valgfri -Dette forteller løser hvilke celler det kan endre for å nå den nødvendige verdien. Dette tilsvarerVed å endre variable celler boksen iLøserparametere dialogboks.
- Motor - valgfri - dette indikerer løsningsmetoden som må brukes for å komme til en løsning. 1 for Simplex LP -metoden, 2 for GRG Nonlinear -metoden, eller 3 for den evolusjonære metoden. Dette tilsvarerVelg en løsningsmetode rullegardinlisten iLøserparametere dialogboks
- MotorDesc - valgfri -Dette er en alternativ måte å velge løsningsmetode på - her skriver du strengene "Simplex LP", "GRG Nonlinear" eller "Evolutionary". Dette tilsvarer ogsåVelg en løsningsmetode rullegardinlisten iLøserparametere dialogboks
SolverLegg til
- CellRef - nødvendig - dette er en referanse til en celle eller en rekke celler som skal endres for å løse problemet.
- Forhold - nødvendig - dette er et heltall som må være mellom 1 og 6 og spesifiserer det tillatte logiske forholdet.
- 1 er mindre enn (<=)
- 2 er lik (=)
- 3 er større enn (> =)
- 4 er må ha sluttverdier som er heltall.
- 5 er må ha verdier mellom 0 eller 1.
- 6 er må ha sluttverdier som alle er forskjellige og heltall.
- FormulaText - valgfri - Høyre side av begrensningen.
Opprette et løsningseksempel
Vurder følgende regneark.
I arket ovenfor må vi bryte jevnt i måned nummer én ved å sette celle B14 til null ved å endre kriteriene i cellene F1 til F6.
123 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"Slutt Sub |
Når du har konfigurert SolverOK -parametrene, må du legge til noen kriterierestriksjoner.
1234567 | Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'legg til kriterier - F3 kan ikke være mindre enn 8SolverAdd CellRef: = "$ F $ 3", Relasjon: = 3, FormulaText: = "8"'legg til kriterier - F3 kan ikke være mindre enn 5000SolverAdd CellRef: = "$ F $ 5", Relasjon: = 3, FormulaText: = "5000"Slutt Sub |
Når du har angitt SolverOK og SolverAdd (hvis nødvendig), 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"'legg til kriterier - F3 kan ikke være mindre enn 8 SolverAdd CellRef: = "$ F $ 3", Relasjon: = 3, FormulaText: = "8"' legg til kriterier - F3 kan ikke være mindre enn 5000SolverAdd CellRef: = "$ F $ 5", Relasjon: = 3, FormulaText: = "5000"'finne en løsning ved å løse problemetSolverLøsSlutt Sub |
Når du kjører koden, vises følgende vindu på skjermen. Velg alternativet du trenger (dvs. Behold Solver -løsningen eller Gjenopprett originale verdier), og klikk OK.