Avatar billede pernillemb Nybegynder
15. maj 2002 - 12:20 Der er 3 kommentarer og
1 løsning

Excel's solver/problemløser i VBA

Hvordan kan man få VBA til at gøre det samme som Excel's solver/problemløser?  Jeg har en funktion som skal minimeres ved at ændre på to variabler (celler) og som bibetingelser skal disse variabler være større end eller lig nul.

Pernille
Avatar billede jennemaan Nybegynder
15. maj 2002 - 12:28 #1
prøv at optage en makro i excel hvor du bruger solveren til at løse dit problem. Der kan du uden videre så se syntaksen (som er noget for sig selv) for hvordan du arbejder med solveren fra VBA.

/Jennemaan
Avatar billede martin_moth Mester
15. maj 2002 - 13:02 #2
Alternativt kan du lave din egen iterations-macro, hvor du laver en eller anden løkke, der finder frem til en løsning (hvis det da ellers konvergerer).

Hvis du ikke har matematik som ynglingsfag, er det nok ikke løsningen ;o)
Avatar billede martin_moth Mester
15. maj 2002 - 13:11 #3
PS. Pernille - en nem måde at lære hvordan VBA virker er ved blot at optage en macro, gøre de ting du vil have macroen til at gøre, og bagefter editere lidt i koden. På den måde får man en masse kode forærende, og som regel skal der kun småjusteringer til, for at det passer til netop dit behov. Og VBA-koden er - synes jeg - som regel ret let at forstå.

Så i stedet for at søge hjælp til det du nu vil, så start med at optage en macro. Kik i koden, prøv at gennemskue havd der sker, og ret den til. Bare et velment råd ;o)
Avatar billede martin_moth Mester
15. maj 2002 - 13:16 #4
Og så lige en allersidste kommentar. Jeg kan se, at jennemaan giver det samme råd som mig - optag en macro. Gør du det, kan du se, at det at kalde solver-funktionen er så simpelt som

    SolverOk SetCell:="$A$1", MaxMinVal:=3, ValueOf:="10", ByChange:="$H$8"
    SolverSolve

Altså vil jeg have Celle A1 til at få værdien 10 ved at ændre på celle H8.
MaxMinVal:=3 må betyde, at jeg vælger at den skal søge en bestemt værdi, nemlig 10, i det jeg formoder, at

MaxMinVal;=1 betyder at der skal maximeres
MaxMinVal;=2 betyder at der skal minimeres
MaxMinVal;=3 betyder at der skal søges en bestemt værdi

Havde du skulle finde ud af alt det ved at søge i hjælpefunktionen var der gået laaaang tid, men ved bare at optage macroen får du det hele på et sølvfad ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester