Υπολογισμός VBA - Τώρα, βιβλίο εργασίας, φύλλο εργασίας ή εύρος

Αυτό το σεμινάριο θα σας διδάξει όλες τις διαφορετικές επιλογές υπολογισμού στο VBA.

Από προεπιλογή, το Excel υπολογίζει όλα τα ανοιχτά βιβλία εργασίας κάθε φορά που πραγματοποιείται αλλαγή βιβλίου εργασίας. Το κάνει ακολουθώντας ένα δέντρο υπολογισμού όπου αν αλλάξει το κελί Α1, ενημερώνει όλα τα κελιά που βασίζονται στο κελί Α1 και ούτω καθεξής. Ωστόσο, αυτό μπορεί να προκαλέσει την εκτέλεση του κώδικα VBA εξαιρετικά αργά, όπως κάθε φορά που αλλάζει ένα κελί, το Excel πρέπει να υπολογίζει εκ νέου.

Για να αυξήσετε την ταχύτητά σας VBA, συχνά θέλετε να απενεργοποιήσετε τους αυτόματους υπολογισμούς στην αρχή των διαδικασιών σας:

1 Application.Calculation = xlManual

και ενεργοποιήστε το ξανά στο τέλος:

1 Εφαρμογή. Υπολογισμός = xlΑυτόματο

Ωστόσο, τι γίνεται αν θέλετε να υπολογίσετε όλα (ή μέρος) των βιβλίων εργασίας σας μέσα στη διαδικασία σας; Το υπόλοιπο αυτού του σεμιναρίου θα σας διδάξει τι να κάνετε.

Υπολογίστε τώρα

Μπορείτε να χρησιμοποιήσετε την εντολή Υπολογισμός για να υπολογίσετε ξανά τα πάντα (σε όλα τα ανοιχτά βιβλία εργασίας):

1 Υπολογίζω

Αυτή είναι συνήθως η καλύτερη μέθοδος για χρήση. Ωστόσο, μπορείτε επίσης να εκτελέσετε πιο περιορισμένους υπολογισμούς για βελτιωμένη ταχύτητα.

Υπολογισμός μόνο φύλλου

Μπορείτε επίσης να πείτε στη VBA να υπολογίσει μόνο ένα συγκεκριμένο φύλλο.

Αυτός ο κωδικός θα υπολογίσει εκ νέου το ενεργό φύλλο:

1 ActiveSheet. Υπολογίστε

Αυτός ο κωδικός θα υπολογίσει εκ νέου το Sheet1:

1 Φύλλα ("Φύλλο1"). Υπολογίστε

Υπολογίστε το εύρος

Εάν χρειάζεστε πιο περιορισμένο υπολογισμό, μπορείτε να πείτε στο VBA να υπολογίσει μόνο ένα εύρος κελιών:

1 Φύλλα ("Φύλλο1"). Εύρος ("a1: a10"). Υπολογίστε

Υπολογίστε τον ατομικό τύπο

Αυτός ο κωδικός θα υπολογίσει μόνο έναν μεμονωμένο τύπο κελιού:

1 Εύρος ("a1"). Υπολογίστε

Υπολογίστε το τετράδιο εργασίας

Δεν υπάρχει επιλογή VBA για τον υπολογισμό μόνο ενός ολόκληρου βιβλίου εργασίας. Εάν πρέπει να υπολογίσετε ένα ολόκληρο βιβλίο εργασίας, η καλύτερη επιλογή είναι να χρησιμοποιήσετε την εντολή Υπολογισμός:

1 Υπολογίζω

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

Υπολογισμός βιβλίου εργασίας - Μέθοδοι που δεν λειτουργούν

Υπάρχουν μερικές μέθοδοι που μπορεί να μπείτε στον πειρασμό να χρησιμοποιήσετε για να αναγκάσετε το VBA να υπολογίσει μόνο ένα βιβλίο εργασίας, ωστόσο καμία από αυτές δεν θα λειτουργήσει σωστά.

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

1234567 Sub Recalculate_Workbook ()Dim ws Ως φύλλο εργασίαςΓια κάθε ws σε φύλλα εργασίαςws. ΥπολογίστεΕπόμενο wsΤέλος υπο

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

Ωστόσο, εάν τα φύλλα εργασίας σας αναφέρονται σε άλλα φύλλα, οι υπολογισμοί σας ενδέχεται να μην ενημερώνονται σωστά. Για παράδειγμα, αν υπολογίσετε το Sheet1 πριν από το Sheet2, αλλά οι τύποι του Sheet1 βασίζονται σε υπολογισμούς που γίνονται στο Sheet2, τότε οι τύποι σας δεν θα περιέχουν τις πιο ενημερωμένες τιμές.

Μπορείτε επίσης να δοκιμάσετε να επιλέξετε όλα τα φύλλα ταυτόχρονα και να υπολογίσετε το φύλλο ενεργητικού:

12 ThisWorkbook.Sheets.SelectActiveSheet. Υπολογίστε

Ωστόσο, αυτό θα προκαλέσει το ίδιο ζήτημα.

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

wave wave wave wave wave