Λειτουργία αθροίσματος VBA (σειρές, στήλες και άλλα)

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

Η συνάρτηση αθροίσματος είναι μία από τις πιο ευρέως χρησιμοποιούμενες συναρτήσεις του Excel και πιθανώς η πρώτη που οι χρήστες του Excel μαθαίνουν να χρησιμοποιούν. Το VBA δεν έχει στην πραγματικότητα ισοδύναμο - ένας χρήστης πρέπει να χρησιμοποιήσει την ενσωματωμένη συνάρτηση Excel στο VBA χρησιμοποιώντας το Λειτουργία φύλλου εργασίας αντικείμενο.

Sum WorksheetFunction

Το αντικείμενο WorksheetFunction μπορεί να χρησιμοποιηθεί για να καλέσετε τις περισσότερες από τις λειτουργίες του Excel που είναι διαθέσιμες στο παράθυρο διαλόγου Εισαγωγή συνάρτησης στο Excel. Η συνάρτηση SUM είναι μία από αυτές.

123 Sub TestFunctionΕύρος ("D33") = Application.WorksheetFunction.Sum ("D1: D32")Τέλος υπο

Μπορείτε να έχετε έως 30 ορίσματα στη συνάρτηση SUM. Κάθε ένα από τα ορίσματα μπορεί επίσης να αναφέρεται σε μια σειρά κελιών.

Αυτό το παράδειγμα παρακάτω θα προσθέσει τα κελιά D1 στο D9

123 Sub TestSum ()Εύρος ("D10") = Application.WorksheetFunction.SUM ("D1: D9")Τέλος υπο

Το παρακάτω παράδειγμα θα προσθέσει ένα εύρος στη στήλη D και ένα εύρος στη στήλη F. Εάν δεν πληκτρολογήσετε το αντικείμενο εφαρμογής, θα θεωρηθεί ως δεδομένο.

123 Sub TestSum ()Εύρος ("D25") = WorksheetFunction.SUM (Range ("D1: D24"), Range ("F1: F24"))Τέλος υπο

Σημειώστε ότι για ένα μόνο εύρος κελιών δεν χρειάζεται να καθορίσετε τη λέξη "Εύρος" στον τύπο μπροστά από τα κελιά, υποτίθεται από τον κώδικα. Ωστόσο, εάν χρησιμοποιείτε πολλά ορίσματα, πρέπει να το κάνετε.

Εκχώρηση αθροίσματος σε μια μεταβλητή

Μπορεί να θέλετε να χρησιμοποιήσετε το αποτέλεσμα του τύπου σας αλλού στον κώδικα αντί να το γράψετε απευθείας πίσω και στο Εύρος Excel. Εάν συμβαίνει αυτό, μπορείτε να αντιστοιχίσετε το αποτέλεσμα σε μια μεταβλητή για χρήση αργότερα στον κώδικά σας.

1234567 Sub AssignSumVariable ()Αμυδρό αποτέλεσμα ως Διπλό«Εκχωρήστε τη μεταβλητήαποτέλεσμα = WorksheetFunction.SUM (Εύρος ("G2: G7"), Εύρος ("H2: H7"))«Δείξτε το αποτέλεσμαMsgBox "Το σύνολο των εύρων είναι" & αποτέλεσμαΤέλος υπο

Άθροισμα αντικειμένου εύρους

Μπορείτε να αντιστοιχίσετε μια ομάδα κελιών στο αντικείμενο εύρους και, στη συνέχεια, να χρησιμοποιήσετε αυτό το αντικείμενο εύρους με το Φύλλο εργασίας αντικείμενο.

123456789 Sub TestSumRange ()Dim rng As Range«εκχωρήστε το εύρος των κελιώνΡύθμιση rng = Εύρος ("D2: E10")"χρησιμοποιήστε το εύρος στον τύποΕύρος ("E11") = WorksheetFunction.SUM (rng)«απελευθερώστε το αντικείμενο εύρουςΡύθμιση rng = ΤίποταΤέλος υπο

Άθροισμα αντικειμένων πολλαπλής εμβέλειας

Ομοίως, μπορείτε να αθροίσετε πολλά αντικείμενα εύρους.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB ως Εύρος«εκχωρήστε το εύρος των κελιώνΡύθμιση rngA = Εύρος ("D2: D10")Ρύθμιση rngB = Εύρος ("E2: E10")"χρησιμοποιήστε το εύρος στον τύποΕύρος ("E11") = WorksheetFunction.SUM (rngA, rngB)«απελευθερώστε το αντικείμενο εύρουςΡύθμιση rngA = ΤίποταΡύθμιση rngB = ΤίποταΤέλος υπο

Σύνολο ολόκληρης στήλης ή σειράς

Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση Sum για να προσθέσετε μια ολόκληρη στήλη ή μια ολόκληρη σειρά

Αυτή η παρακάτω διαδικασία θα προσθέσει όλα τα αριθμητικά κελιά στη στήλη D.

123 Sub TestSum ()Εύρος ("F1") = WorksheetFunction.SUM (Εύρος ("D: D")Τέλος υπο

Ενώ αυτή η διαδικασία παρακάτω θα προσθέσει όλα τα αριθμητικά κελιά στη σειρά 9.

123 Sub TestSum ()Εύρος ("F2") = WorksheetFunction.SUM (Εύρος ("9: 9")Τέλος υπο

Sum an Array

Μπορείτε επίσης να χρησιμοποιήσετε το WorksheetFunction.Sum για να προσθέσετε τιμές σε έναν πίνακα.

123456789101112 Sub TestArray ()Dim intA (1 έως 5) ως ακέραιοςDim SumArray As Integer"συμπληρώστε τον πίνακαintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40"προσθέστε τον πίνακα και δείξτε το αποτέλεσμαMsgBox WorksheetFunction.SUM (intA)Τέλος υπο

Χρήση της συνάρτησης SumIf

Μια άλλη συνάρτηση φύλλου εργασίας που μπορεί να χρησιμοποιηθεί είναι η συνάρτηση SUMIF.

123 Sub TestSumIf ()Εύρος ("D11") = WorksheetFunction.SUMIF (Range ("C2: C10"), 150, Range ("D2: D10"))Τέλος υπο

Η παραπάνω διαδικασία θα προσθέσει τα κελιά στο εύρος (D2: D10) μόνο εάν το αντίστοιχο κελί στη στήλη C = 150.

Τύπος αθροίσματος

Όταν χρησιμοποιείτε το WorksheetFunction.SUM για να προσθέσετε ένα άθροισμα σε μια περιοχή στο φύλλο εργασίας σας, επιστρέφεται ένα στατικό άθροισμα, όχι ένας ευέλικτος τύπος. Αυτό σημαίνει ότι όταν αλλάζουν τα στοιχεία σας στο Excel, η τιμή που έχει επιστραφεί από το Φύλλο εργασίας δεν θα αλλάξει

Στο παραπάνω παράδειγμα, η διαδικασία TestSum πρόσθεσε το εύρος (D2: D10) και το αποτέλεσμα τέθηκε στο D11. Όπως μπορείτε να δείτε στη γραμμή τύπων, αυτό το αποτέλεσμα είναι ένα σχήμα και όχι ένας τύπος.

Εάν κάποια από τις τιμές αλλάξει επομένως στο εύρος (D2: D10), το αποτέλεσμα στο D11 θα αλλάξει ΔΕΝ αλλαγή.

Αντί να χρησιμοποιήσετε το WorksheetFunction.SUM, μπορείτε να χρησιμοποιήσετε το VBA για να εφαρμόσετε μια συνάρτηση αθροίσματος σε ένα κελί χρησιμοποιώντας το Τύπος ή ΤύποςR1C1 μεθόδους.

Μέθοδος τύπου

Η μέθοδος τύπου σας επιτρέπει να δείξετε συγκεκριμένα μια περιοχή κελιών π.χ.: D2: D10 όπως φαίνεται παρακάτω.

123 Sub TestSumFormulaΕύρος ("D11"). Τύπος = "= SUM (D2: D10)"Τέλος υπο

Μέθοδος FormulaR1C1

Η μέθοδος FromulaR1C1 είναι πιο ευέλικτη στο ότι δεν σας περιορίζει σε ένα σύνολο κυψελών. Το παρακάτω παράδειγμα θα μας δώσει την ίδια απάντηση με την παραπάνω.

123 Sub TestSumFormula ()Εύρος ("D11"). ΤύποςR1C1 = "= SUM (R [-9] C: R [-1] C)"Τέλος υπο

Ωστόσο, για να κάνουμε τον τύπο πιο ευέλικτο, θα μπορούσαμε να τροποποιήσουμε τον κώδικα έτσι ώστε:

123 Sub TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"Τέλος υπο

Όπου και αν βρίσκεστε στο φύλλο εργασίας σας, ο τύπος θα προσθέσει στη συνέχεια τα 8 κελιά ακριβώς πάνω από αυτό και θα τοποθετήσει την απάντηση στο ActiveCell. Το εύρος εντός της συνάρτησης SUM πρέπει να αναφέρεται στη σύνταξη της γραμμής (R) και της στήλης (C).

Και οι δύο αυτές μέθοδοι σάς επιτρέπουν να χρησιμοποιείτε τύπους Dynamic Excel εντός VBA.

Τώρα θα υπάρχει ένας τύπος στο D11 αντί για τιμή.

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

wave wave wave wave wave