/ / / Λογαριασμοί και κέρματα στο Excel VBA

Λογαριασμοί και κέρματα στο Excel VBA

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

Κατάσταση:

Λογαριασμοί και κέρματα στο Excel VBA

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

1. Ανοίξτε τον Επεξεργαστή Visual Basic.

2. Κάντε διπλό κλικ στο Φύλλο1 (Φύλλο1) στον Έλεγχο Έργου.

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

Αλλαγή συμβάντος εργασίας στο Excel VBA

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

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

Dim amount As Double, i As Integer

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

If Target.Address = "$B$2" Then

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

amount = Range("B2").Value

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

Range("B5:B16").Value = ""

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

For i = 5 To 16

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

Do While amount >= Cells(i, 1).Value

Loop

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

Cells(i, 2).Value = Cells(i, 2).Value + 1
amount = amount - Cells(i, 1).Value

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

11. Κλείστε το βρόχο For Next και μην ξεχάσετε να κλείσετε τη εντολή if (και έξω από το Do While Loop).

   Next i
End if

12. Ελέγξτε το πρόγραμμα.

Αποτέλεσμα:

Αποτέλεσμα λογαριασμών και κερμάτων

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

Επίσης διαβάστε: