Λογαριασμοί και νομίσματα στο Excel VBA - Εύκολα μακροεντολές Excel

Πίνακας περιεχομένων

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

Κατάσταση:

Δημιουργία συμβάντος αλλαγής φύλλου εργασίας. Ο κώδικας που προστέθηκε στο συμβάν αλλαγής φύλλου εργασίας θα εκτελεστεί από το Excel VBA όταν αλλάξετε ένα κελί σε ένα φύλλο εργασίας.

1. Ανοίξτε το Visual Basic Editor.

2. Κάντε διπλό κλικ στο Sheet1 (Sheet1) στο Project Explorer.

3. Επιλέξτε φύλλο εργασίας από την αριστερή αναπτυσσόμενη λίστα. Επιλέξτε Αλλαγή από τη δεξιά αναπτυσσόμενη λίστα.

Προσθέστε τις ακόλουθες γραμμές κώδικα στο συμβάν αλλαγής φύλλου εργασίας:

4. Δηλώστε μια μεταβλητή που ονομάζεται ποσό τύπου Double και μια μεταβλητή i του τύπου Integer.

Dim ποσό ως διπλό, i ως ακέραιο

5. Το συμβάν αλλαγής φύλλου εργασίας ακούει όλες τις αλλαγές στο Φύλλο1. Θέλουμε μόνο το Excel VBA να κάνει κάτι εάν αλλάξει κάτι στο κελί Β2. Για να το επιτύχετε, προσθέστε την ακόλουθη γραμμή κώδικα:

Εάν Target.Address = "$ B $ 2" Τότε

6. Αρχικοποιούμε τη μεταβλητή ποσότητα με την τιμή του κελιού Β2.

 ποσό = Εύρος ("Β2"). Τιμή

7. Αδειάζουμε το εύρος με τις συχνότητες.

Εύρος ("B5: B16"). Τιμή = ""

8. Τώρα ήρθε η ώρα να χωρίσετε το καταχωρισμένο χρηματικό ποσό. Ξεκινάμε ένα βρόχο For Next.

Για i = 5 έως 16

9. Θα χρησιμοποιήσουμε τη δομή Do while Loop. Ο κώδικας που τοποθετείται ανάμεσα σε αυτές τις λέξεις θα επαναλαμβάνεται όσο ισχύει το τμήμα μετά το Do while. Θέλουμε το Excel VBA να επαναλάβει τις γραμμές κώδικα στο βήμα 10 εφόσον το ποσό είναι μεγαλύτερο ή ίσο με κελιά (i, 1) .τιμή.

Do while ποσότητα> = κελιά (i, 1). Αξία
Βρόχος

10. Προσθέστε τις ακόλουθες γραμμές κώδικα στο βρόχο Do while.

Κελιά (i, 2). Αξία = Κελιά (i, 2). Αξία + 1
ποσό = ποσό - Κελιά (i, 1). Αξία

Επεξήγηση: εφόσον το ποσό είναι μεγαλύτερο ή ίσο με κελιά (i, 1). Αξία, το ποσό περιέχει λογαριασμούς/κέρματα αυτής της αξίας. Ως αποτέλεσμα, το Excel VBA αυξάνει τη συχνότητα αυτού του λογαριασμού/νομίσματος (πρώτη γραμμή) και αφαιρεί την αξία του λογαριασμού/νομίσματος από το ποσό (δεύτερη γραμμή). Αυτή η διαδικασία θα επαναληφθεί έως ότου η ποσότητα γίνει μικρότερη από τα κελιά (i, 1) .τιμή. Στη συνέχεια, το Excel VBA αυξάνει το i και πηγαίνει στον επόμενο λογαριασμό/νόμισμα για να δει πόσες φορές αυτός ο λογαριασμός/κέρμα ταιριάζει στο ποσό που απομένει. Με αυτόν τον τρόπο το χρηματικό ποσό θα χωριστεί σε χαρτονομίσματα και νομίσματα μέχρι να μην μείνουν άλλα χρήματα.

11. Κλείστε το βρόχο For Next και μην ξεχάσετε να κλείσετε την εντολή if (και τα δύο εκτός του βρόχου Do while).

 Επόμενο i
Τέλος εαν

12. Δοκιμάστε το πρόγραμμα.

Αποτέλεσμα:

Σημείωση: φυσικά το καταχωρημένο ποσό δεν περιέχει απαραίτητα κάθε λογαριασμό/νόμισμα. Εάν το ποσό δεν περιέχει έναν συγκεκριμένο λογαριασμό/νόμισμα, το μέρος μετά το Do While δεν γίνεται ποτέ για αυτό το λογαριασμό/νόμισμα και το Excel VBA πηγαίνει απευθείας στο επόμενο λογαριασμό/νόμισμα.

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

wave wave wave wave wave