VBA Megoldó

Ez az oktatóanyag megmutatja, hogyan kell használni a Solver bővítményt a VBA-ban.

A Solver egy olyan bővítmény, amelyet az Excel tartalmaz, és a „mi lett volna, ha” elemzés elvégzésére szolgál azáltal, hogy alternatív válaszokat ad egy cella képletére olyan értékek alapján, amelyeket a munkafüzet más celláiból továbbíthat a képlethez.

A Solver bővítmény engedélyezése az Excelben

Válaszd ki a Fájl az Excel szalagon, majd lépjen le a Lehetőségek.

Válassza a lehetőséget Bővítmények és kattintson a Megy gombot az Excel-bővítmények mellett.

Győződjön meg arról, hogy a Megoldó bővítmény opció van kiválasztva.

Alternatív megoldásként kattintson a gombra Excel-bővítmények a Fejlesztő szalagot a Bővítmények párbeszédpanel megjelenítéséhez.

A Megoldó bővítmény engedélyezése a VBA-ban

Miután engedélyezte a Megoldó bővítményt az Excelben, hozzá kell adnia egy hivatkozást a VBA-projekthez, hogy használni tudja a VBA-ban.

Győződjön meg róla, hogy rákattintottak a VBA projektben, ahol használni szeretné a Megoldót. Kattintson a Eszközök menü majd tovább Hivatkozások.

Hivatkozás a Megoldó bővítmény hozzáadódik a projekthez.

Most már használhatja a Megoldó bővítményt a VBA kódban!

Megoldó funkciók használata VBA -ban

A Solver VBA használatához 3 Solver VBA funkciót kell használnunk. Ezek SolverOK, SolverAdd, és SolverSolve.

SolverOK

  • SetCell - választható - ennek a cellára kell utalnia, amelyet módosítani kell - tartalmaznia kell egy képletet. Ez megfelel aÁllítsa be az objektív cellát doboz aMegoldó paraméterek párbeszédablak.
  • MaxMinVal - választható - Ezt beállíthatja 1 (Maximize), 2 (Minimize) vagy 3 értékre. Ez megfelel a Max, Min, ésÉrték lehetőségek aMegoldó paraméterek párbeszédablak.
  • Értéke - választható -Ha a MaxMinValue értéke 3, akkor ezt az érvet kell megadnia.
  • ByChange - választható -Ez megmondja a megoldónak, hogy mely cellákat módosíthatja a kívánt érték elérése érdekében. Ez megfelel aVáltozó cellák megváltoztatásával doboz aMegoldó paraméterek párbeszédablak.
  • Motor - választható - ez jelzi azt a megoldási módszert, amelyet a megoldáshoz kell használni. 1 a Simplex LP módszerhez, 2 a GRG nemlineáris módszerhez vagy 3 az Evolutionary módszerhez. Ez megfelel aVálasszon megoldási módszert legördülő listában aMegoldó paraméterek párbeszédablak
  • MotorDesc - választható - ez egy alternatív módja a megoldási módszer kiválasztásának - itt a „Simplex LP”, „GRG Nonlinear” vagy „Evolutionary” karakterláncokat írja be. Ez is megfelel aVálasszon megoldási módszert legördülő listában aMegoldó paraméterek párbeszédablak

SolverAdd

  • CellRef - kívánt - ez egy hivatkozás egy cellára vagy cellatartományra, amelyet módosítani kell a probléma megoldása érdekében.
  • Kapcsolat - kívánt - ez egy egész szám, amelynek 1 és 6 között kell lennie, és megadja az engedélyezett logikai összefüggést.
    • 1 kisebb, mint (<=)
    • 2 egyenlő (=)
    • 3 nagyobb, mint (> =)
    • A 4 végső értékeinek egész számoknak kell lenniük.
    • Az 5 értéknek 0 vagy 1 között kell lennie.
    • A 6 -nak végső értékekkel kell rendelkeznie, amelyek különbözőek és egész számok.
  • FormulaText - választható - A kényszer jobb oldala.

Megoldó példa létrehozása

Tekintsük a következő munkalapot.

A fenti lapon az első hónapban egyenlítenünk kell, ha a B14 cellát nullára állítjuk az F1 – F6 cellák kritériumainak módosításával.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG nemlineáris"End Sub

Miután beállította a SolverOK paramétereket, hozzá kell adnia néhány kritériumkorlátot.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG nemlineáris"„Feltételek hozzáadása - az F3 nem lehet kevesebb 8 -nálSolverAdd CellRef: = "$ F $ 3", Relation: = 3, FormulaText: = "8""Feltételek hozzáadása - az F3 nem lehet kevesebb 5000 -nélSolverAdd CellRef: = "$ F $ 5", Relation: = 3, FormulaText: = "5000"End Sub

A SolverOK és a SolverAdd beállítása után (ha szükséges) megoldhatja a problémát.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Motor: = 1, EngineDesc: = "GRG nemlineáris"'add feltétel - F3 nem lehet kevesebb, mint 8SolverAdd CellRef: = "$ F $ 5", Relation: = 3, FormulaText: = "5000"'találj megoldást a probléma megoldásávalSolverSolveEnd Sub

A kód futtatása után a következő ablak jelenik meg a képernyőn. Válassza ki a kívánt opciót (azaz a Megoldó megoldás megtartása vagy az eredeti értékek visszaállítása) lehetőséget, majd kattintson az OK gombra.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave