Επίλυση VBA

Αυτό το σεμινάριο θα σας δείξει πώς να χρησιμοποιήσετε το πρόσθετο Solver στο VBA.

Το Solver είναι ένα πρόσθετο που παρέχεται με το Excel και χρησιμοποιείται για την εκτέλεση ανάλυσης "τι-αν" παρέχοντας εναλλακτικές απαντήσεις σε έναν τύπο σε ένα κελί με βάση τις τιμές που μπορείτε να περάσετε στον τύπο από άλλα κελιά στο βιβλίο εργασίας σας.

Ενεργοποίηση του πρόσθετου επίλυσης στο Excel

Επίλεξε το Αρχείο στην κορδέλα του Excel και μετά κατεβείτε στο Επιλογές.

Επιλέγω Πρόσθετα και κάντε κλικ στο Πηγαίνω κουμπί δίπλα στο Πρόσθετα Excel.

Βεβαιωθείτε ότι το Πρόσθετο επίλυσης επιλεγμένη επιλογή.

Εναλλακτικά, κάντε κλικ στο Πρόσθετα Excel στο Προγραμματιστής κορδέλα για να λάβετε το παράθυρο διαλόγου Πρόσθετα.

Ενεργοποίηση του πρόσθετου επίλυσης σε VBA

Αφού ενεργοποιήσετε το πρόσθετο επίλυσης στο Excel, πρέπει στη συνέχεια να προσθέσετε μια αναφορά σε αυτό στο έργο VBA για να το χρησιμοποιήσετε στο VBA.

Βεβαιωθείτε ότι έχετε κάνει κλικ στο έργο VBA όπου θέλετε να χρησιμοποιήσετε το Solver. Κάνε κλικ στο Μενού Εργαλεία και μετά βιβλιογραφικές αναφορές.

Μια αναφορά στο Πρόσθετο επίλυσης θα προστεθεί στο έργο σας.

Τώρα μπορείτε να χρησιμοποιήσετε το Solver Add-in στον κωδικό VBA!

Χρήση λειτουργιών επίλυσης στο VBA

Πρέπει να χρησιμοποιήσουμε 3 λειτουργίες Solver VBA για να χρησιμοποιήσουμε το Solver στο VBA. Αυτά είναι SolverOK, SolverAdd, και SolverSolve.

SolverOK

  • SetCell - προαιρετικός - αυτό πρέπει να αναφέρεται στο κελί που πρέπει να αλλάξει - πρέπει να περιέχει έναν τύπο. Αυτό αντιστοιχεί στοΟρισμός κελιού αντικειμένου κουτί στοΠαράμετροι επίλυσης κουτί διαλόγου.
  • MaxMinVal - προαιρετικός - Μπορείτε να το ορίσετε σε 1 (Μεγιστοποίηση), 2 (Ελαχιστοποίηση) ή 3. Αυτό αντιστοιχεί στο Μέγιστη, Ελάχ, καιαξία επιλογές στοΠαράμετροι επίλυσης κουτί διαλόγου.
  • Αξία του - προαιρετικός -Εάν το MaxMinValue έχει οριστεί σε 3, τότε πρέπει να δώσετε αυτό το όρισμα.
  • ByChange - προαιρετικός -Αυτό λέει στον επιλύτη ποια κύτταρα μπορεί να αλλάξει για να φτάσει στην απαιτούμενη τιμή. Αυτό αντιστοιχεί στοΑλλαγή μεταβλητών κελιών κουτί στοΠαράμετροι επίλυσης κουτί διαλόγου.
  • Μηχανή - προαιρετικός - αυτό υποδεικνύει τη μέθοδο επίλυσης που πρέπει να χρησιμοποιηθεί για να επιτευχθεί μια λύση. 1 για τη μέθοδο Simplex LP, 2 για τη μη γραμμική μέθοδο GRG ή 3 για την εξελικτική μέθοδο. Αυτό αντιστοιχεί στοΕπιλέξτε μια μέθοδο επίλυσης αναπτυσσόμενη λίστα στοΠαράμετροι επίλυσης κουτί διαλόγου
  • EngineDesc - προαιρετικός -αυτός είναι ένας εναλλακτικός τρόπος επιλογής της μεθόδου επίλυσης - εδώ θα πληκτρολογούσατε τις συμβολοσειρές "Simplex LP", "GRG Nonlinear" ή "Evolutionary". Αυτό αντιστοιχεί επίσης στοΕπιλέξτε μια μέθοδο επίλυσης αναπτυσσόμενη λίστα στοΠαράμετροι επίλυσης κουτί διαλόγου

SolverAdd

  • CellRef - απαιτείται - Αυτή είναι μια αναφορά σε ένα κελί ή μια σειρά κελιών που πρόκειται να αλλάξουν για να λυθεί το πρόβλημα.
  • Σχέση - απαιτείται - αυτός είναι ένας ακέραιος αριθμός που πρέπει να είναι μεταξύ 1 και 6 και καθορίζει τη λογική σχέση που επιτρέπεται.
    • 1 είναι μικρότερη από (<=)
    • 2 είναι ίσο με (=)
    • 3 είναι μεγαλύτερο από (> =)
    • Το 4 πρέπει να έχει τελικές τιμές που είναι ακέραιοι.
    • Το 5 πρέπει να έχει τιμές μεταξύ 0 ή 1.
    • Το 6 πρέπει να έχει τελικές τιμές που είναι όλες διαφορετικές και ακέραιες.
  • FormulaText - προαιρετικός - Η δεξιά πλευρά του περιορισμού.

Δημιουργία παραδείγματος επίλυσης

Εξετάστε το ακόλουθο φύλλο εργασίας.

Στο παραπάνω φύλλο, πρέπει να σπάσουμε ακόμη και τον Μήνα Νο 1 θέτοντας το κελί B14 στο μηδέν τροποποιώντας τα κριτήρια στα κελιά F1 σε F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"Τέλος υπο

Αφού ρυθμίσετε τις παραμέτρους SolverOK, πρέπει να προσθέσετε ορισμένους περιορισμούς κριτηρίων.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"«προσθήκη κριτηρίων - το F3 δεν μπορεί να είναι μικρότερο από 8SolverAdd CellRef: = "$ F $ 3", Σχέση: = 3, FormulaText: = "8"«προσθήκη κριτηρίων - το F3 δεν μπορεί να είναι μικρότερο από 5000SolverAdd CellRef: = "$ F $ 5", Σχέση: = 3, FormulaText: = "5000"Τέλος υπο

Μόλις ρυθμίσετε το SolverOK και το SolverAdd (εάν απαιτείται), μπορείτε να λύσετε το πρόβλημα.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"«προσθήκη κριτηρίων - το F3 δεν μπορεί να είναι μικρότερο από 8 SolverAdd CellRef: =" $ F $ 3 ", Σχέση: = 3, FormulaText: =" 8 "" προσθήκη κριτηρίων - το F3 δεν μπορεί να είναι μικρότερο από 5000SolverAdd CellRef: = "$ F $ 5", Σχέση: = 3, FormulaText: = "5000"«βρες μια λύση λύνοντας το πρόβλημαSolverSolveΤέλος υπο

Μόλις εκτελέσετε τον κώδικα, το ακόλουθο παράθυρο θα εμφανιστεί στην οθόνη σας. Επιλέξτε την επιλογή που χρειάζεστε (δηλ. Διατήρηση της λύσης επίλυσης ή Επαναφορά αρχικών τιμών) και κάντε κλικ στο OK.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave