Οι λειτουργίες VBA Timer επιστρέφουν τον αριθμό των δευτερολέπτων που έχουν παρέλθει από τα μεσάνυχτα της τρέχουσας ημέρας (επιστρέφονται ως τύπος μεμονωμένων δεδομένων).
Χρήση της λειτουργίας χρονοδιακόπτη VBA
Ο παρακάτω κώδικας θα σας δείξει πώς να χρησιμοποιήσετε τη λειτουργία χρονοδιακόπτη VBA για να καθορίσετε πόσα δευτερόλεπτα έχουν περάσει, από τα μεσάνυχτα, τη στιγμή που εκτελείται ο κώδικας:
12345678 | Sub UsingTheVBATimerFunction ()Δευτερόλεπτα από τότε ως SingleδευτερόλεπταΑπό = Χρονοδιακόπτης ()Εντοπισμός σφαλμάτων. Εκτύπωση δευτερολέπτωνΤέλος υπο |
Το αποτέλεσμα είναι:
Χρησιμοποιήστε το χρονοδιακόπτη VBA για να λάβετε πραγματικό χρόνο
Μπορείτε να μετατρέψετε τα δευτερόλεπτα που επιστρέφονται από τη λειτουργία Χρονοδιακόπτη σε μορφή hh: mm: ss για να δείτε τον πραγματικό χρόνο χρησιμοποιώντας τον ακόλουθο κώδικα:
123456789101112131415 | Sub GettingTheActualTime ()Δευτερόλεπτα από τότε ως SingleDim cTime As DoubleDim theActualTime As VariantδευτερόλεπταΑπό = Χρονοδιακόπτης ()cTime = δευτερόλεπταΑπό / (86400)theActualTime = Μορφή (cTime, "hh: mm: ss")MsgBox "Ο χρόνος που πέρασε από τα μεσάνυχτα σε δευτερόλεπτα είναι" & "" & δευτερόλεπταΑπό & vbNewLine & _"Η πραγματική ώρα είναι:" & "" & theActualTimeΤέλος υπο |
Το αποτέλεσμα είναι:
Time a Section of VBA Code
Αν ψάχνετε να συγκρίνετε τον επανεγγραφόμενο κώδικα ή να συζητήσετε "γρηγορότερες" μεθόδους στο VBA, μπορείτε να χρησιμοποιήσετε το ενσωματωμένο χρονόμετρο της VBA. Η ρύθμιση μιας μεταβλητής ίσης με το χρονόμετρο στην αρχή του κώδικα και η αφαίρεση αυτής από το χρονόμετρο στο τέλος θα σας δώσει καλή εκτίμηση για το πόσο χρόνο χρειάζεται ένα κομμάτι κώδικα για να τρέξει.
Η απόδοση μπορεί να επηρεαστεί από άλλα προγράμματα που εκτελούνται ή προσπαθούν να εκτελεστούν ενώ η μακροεντολή είναι ενεργή, μεταξύ άλλων.
Το ακόλουθο παράδειγμα χρησιμοποιήθηκε για να δει πόσος χρόνος θα χρειαζόταν για να γραφτεί η λέξη "δοκιμή" στο κελί Α1 στο Φύλλο 1 μισό εκατομμύριο φορές. Χρειάστηκαν 21 δευτερόλεπτα στο μηχάνημά μου.
123456789101112131415161718 | Sub BenchMark ()Dim Count As LongDim BenchMark As DoubleBenchMark = Χρονοδιακόπτης'Έναρξη κώδικα για δοκιμήΓια Count = 1 έως 500000Sheet1.Cells (1, 1) = "δοκιμή"Επόμενη καταμέτρησηΤέλος κώδικα σε δοκιμήMsgBox Timer - BenchMarkΤέλος υπο |
Εάν ο κωδικός σας λειτουργεί αργά, δοκιμάστε να τον επιταχύνετε απενεργοποιώντας την ενημέρωση οθόνης. Για να διατηρήσουμε ενεργή την οθόνη του Excel ενώ λειτουργεί ο χρονοδιακόπτης, μπορούμε να εισαγάγουμε τη μέθοδο DoEvents στον κώδικα.