/ / / Αντικείμενο εφαρμογής VBA του Excel

Αντικείμενο εφαρμογής VBA του Excel

Φύλλο εργασίας | ScreenUpdating | DisplayAlerts | Υπολογισμός

Η μητέρα όλων των αντικειμένων είναι το ίδιο το Excel. Το ονομάζουμε Αντικείμενο εφαρμογής. Το αντικείμενο της εφαρμογής παρέχει πρόσβαση σε πολλές σχετικές με το Excel επιλογές.

Φύλλο εργασίας

Μπορείτε να χρησιμοποιήσετε την ιδιότητα WorkheetFunction στο Excel VBA για πρόσβαση στις λειτουργίες του Excel.

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

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο εργασίας, το Excel VBA υπολογίζει το μέσο όρο των τιμών στο κελί A1 και το κελί A2 και τοποθετεί το αποτέλεσμα στο κελί A3.

Λειτουργία φύλλου εργασίας στο Excel VBA

Σημείωση: αντί για Application.WorksheetFunction.Μέσος όρος, απλά χρησιμοποιήστε το WorksheetFunction.Average. Αν κοιτάξετε τη γραμμή τύπων, μπορείτε να δείτε ότι ο ίδιος ο τύπος δεν έχει εισαχθεί στο κελί A3. Για να εισαγάγετε τον ίδιο τον τύπο στο κελί A3, χρησιμοποιήστε την ακόλουθη γραμμή κώδικα:

Range("A3").Value = "=AVERAGE(A1:A2)"

ScreenUpdating

Μερικές φορές μπορεί να σας φανεί χρήσιμο να απενεργοποιήσετε την ενημέρωση οθόνης (για να αποφύγετε το τρεμόπαιγμα) κατά την εκτέλεση κώδικα. Ως αποτέλεσμα, ο κωδικός σας θα τρέξει γρηγορότερα.

1. Για παράδειγμα, τοποθετήστε ένα κουμπί εντολών στο φύλλο εργασίας σας και προσθέστε τις ακόλουθες γραμμές κώδικα:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

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

ScreenUpdating

2. Για να επιταχύνετε τη διαδικασία, ενημερώστε τον κώδικα ως εξής.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

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

DisplayAlerts

Μπορείτε να δώσετε εντολή στο Excel VBA να μην εμφανίζει ειδοποιήσεις κατά την εκτέλεση κώδικα.

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

ActiveWorkbook.Close

Όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο εργασίας, το Excel VBA κλείνει το αρχείο Excel και σας ζητά να αποθηκεύσετε τις αλλαγές που κάνατε.

DisplayAlerts

2. Για να δώσετε εντολή στο Excel VBA να μην εμφανίζει αυτήν την ειδοποίηση κατά την εκτέλεση κώδικα, ενημερώστε τον κώδικα ως εξής.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

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

Υπολογισμός

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

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

Application.Calculation = xlCalculationManual

Όταν κάνετε κλικ στο κουμπί εντολών στο φύλλο εργασίας, το Excel VBA ορίζει τον υπολογισμό σε χειροκίνητο.

2. Μπορείτε να το επιβεβαιώσετε κάνοντας κλικ στο Αρχείο, Επιλογές, Φόρμες.

Επιλογές υπολογισμού

3. Τώρα, όταν αλλάζετε την τιμή του κελιού A1, η τιμή του κελιού B1 δεν υπολογίζεται εκ νέου.

Χειροκίνητος υπολογισμός

Μπορείτε να υπολογίσετε εκ νέου το βιβλίο εργασίας πατώντας το πλήκτρο F9.

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

Application.Calculation = xlCalculationAutomatic
Επίσης διαβάστε: