Πώς να χρησιμοποιήσετε το If-Then στο Excel 2016 VBA

Το If-Then είναι η πιο σημαντική δομή ελέγχου της VBA. Πιθανότατα θα χρησιμοποιείτε αυτήν την εντολή σε καθημερινή βάση. Χρησιμοποιήστε τη δομή If-Then όταν θέλετε να εκτελέσετε μία ή περισσότερες εντολές υπό όρους. Η προαιρετική ρήτρα Else, εάν περιλαμβάνεται, σας επιτρέπει να εκτελέσετε μία ή περισσότερες δηλώσεις εάν η συνθήκη που δοκιμάζετε δεν είναι αληθής. Ακολουθεί μια απλή διαδικασία CheckUser, η οποία έχει επανακωδικοποιηθεί για να χρησιμοποιεί τη δομή If-Then-Else:

Sub CheckUser2()
  Όνομα χρήστη = InputBox ("Εισαγάγετε το όνομά σας: ")
  Εάν Όνομα χρήστη = "Satya Nadella" Τότε
    MsgBox ("Καλώς ήρθες Σάτια...")
«…[Περισσότερος κώδικας εδώ]…
  Αλλού
    MsgBox «Συγγνώμη. Μόνο ο Satya Nadella μπορεί να το εκτελέσει αυτό."
  Τέλος εαν
End Sub

Αν-Τότε παραδείγματα

Η ακόλουθη ρουτίνα δείχνει τη δομή If-Then χωρίς την προαιρετική ρήτρα Else:

Sub GreetMe()
  Αν Ώρα < 0,5 Τότε MsgBox "Καλημέρα"
End Sub

Η διαδικασία GreetMe χρησιμοποιεί τη συνάρτηση Time του VBA για να πάρει την ώρα του συστήματος. Εάν η τρέχουσα ώρα είναι μικρότερη από 0,5, η ρουτίνα εμφανίζει έναν φιλικό χαιρετισμό. Εάν ο Χρόνος είναι μεγαλύτερος ή ίσος με 0,5, η ρουτίνα τελειώνει και δεν συμβαίνει τίποτα.

Για να εμφανίσετε έναν διαφορετικό χαιρετισμό εάν ο χρόνος είναι μεγαλύτερος ή ίσος με 0,5, μπορείτε να προσθέσετε μια άλλη δήλωση If-Then μετά την πρώτη:

Sub GreetMe2()
  Αν Ώρα < 0,5 Τότε MsgBox "Καλημέρα"
  Αν Ώρα >= 0,5 Τότε MsgBox "Καλό απόγευμα"
End Sub

Παρατηρήστε ότι >= (μεγαλύτερο ή ίσο με) χρησιμοποιείται για τη δεύτερη πρόταση If-Then. Αυτό διασφαλίζει ότι καλύπτεται ολόκληρη η ημέρα. Εάν είχε χρησιμοποιηθεί > (μεγαλύτερη από) δεν θα εμφανιζόταν κανένα μήνυμα εάν αυτή η διαδικασία εκτελούνταν ακριβώς στις 12:00 το μεσημέρι. Αυτό είναι μάλλον απίθανο, αλλά με ένα σημαντικό πρόγραμμα όπως αυτό, δεν θέλετε να ρισκάρετε.

Ένα παράδειγμα Αν-Τότε Αλλιώς

Μια άλλη προσέγγιση στο προηγούμενο πρόβλημα χρησιμοποιεί τη ρήτρα Else. Ακολουθεί η ίδια ρουτίνα που επανακωδικοποιήθηκε για τη χρήση της δομής If-Then-Else:

Sub GreetMe3()
  Αν Χρόνος < 0,5 Τότε MsgBox «Καλημέρα» Αλλιώς _
    MsgBox "Καλό απόγευμα"
End Sub

Σημειώστε ότι ο χαρακτήρας συνέχειας γραμμής (υπόγράμμιση) χρησιμοποιείται στο προηγούμενο παράδειγμα. Η δήλωση If-Then-Else είναι στην πραγματικότητα μια ενιαία πρόταση. Το VBA παρέχει έναν ελαφρώς διαφορετικό τρόπο κωδικοποίησης δομών If-Then-Else που χρησιμοποιούν μια πρόταση End If. Επομένως, η διαδικασία GreetMe μπορεί να ξαναγραφτεί ως

Sub GreetMe4()
  Αν Χρόνος < 0,5 Τότε
    MsgBox "Καλημέρα"
  Αλλού
    MsgBox "Καλό απόγευμα"
  Τέλος εαν
End Sub

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

Τι γίνεται αν χρειαστεί να επεκτείνετε τη ρουτίνα GreetMe για να χειριστείτε τρεις καταστάσεις: πρωί, απόγευμα και βράδυ; Έχετε δύο επιλογές: Χρησιμοποιήστε τρεις εντολές If-Then ή χρησιμοποιήστε μια ένθετη δομή If-Then-Else. Ένθεση σημαίνει τοποθέτηση μιας δομής If-Then-Else μέσα σε μια άλλη δομή If-Then-Else. Η πρώτη προσέγγιση, χρησιμοποιώντας τρεις δηλώσεις If-Then, είναι απλούστερη:

Sub GreetMe5()
 Dim Msg As String
 Αν Ώρα < 0,5 Τότε Μήνυμα = "Πρωί"
 Αν Ώρα >= 0,5 Και Ώρα < 0,75 Τότε Μήνυμα = "Απόγευμα"
 Αν Ώρα >= 0,75 Τότε Μήνυμα = "Βράδυ"
 MsgBox “Good” & Msg
End Sub

Μια νέα ανατροπή προστέθηκε με τη χρήση μιας μεταβλητής. Η μεταβλητή Msg λαμβάνει διαφορετική τιμή κειμένου, ανάλογα με την ώρα της ημέρας. Η δήλωση MsgBox εμφανίζει τον χαιρετισμό: Καλημέρα, Καλό απόγευμα ή Καλησπέρα.

Η ακόλουθη ρουτίνα εκτελεί την ίδια ενέργεια, αλλά χρησιμοποιεί μια δομή If-Then-End If:

Sub GreetMe6()
  Dim Msg As String
  Αν Χρόνος < 0,5 Τότε
    Msg = "Πρωί"
  Τέλος εαν
  Αν Χρόνος >= 0,5 Και Χρόνος < 0,75 Τότε
    Msg = "Απόγευμα"
  Τέλος εαν
  Αν Χρόνος >= 0,75 Τότε
    Msg = "Βράδυ"
  Τέλος εαν
  MsgBox “Good” & Msg
End Sub

Χρησιμοποιώντας το ElseIf

Στα προηγούμενα παραδείγματα, κάθε εντολή στη ρουτίνα εκτελείται. Μια ελαφρώς πιο αποτελεσματική δομή θα έβγαινε από τη ρουτίνα μόλις διαπιστωθεί ότι μια συνθήκη είναι αληθής. Το πρωί, για παράδειγμα, η διαδικασία θα πρέπει να εμφανίζει το μήνυμα Good Morning και μετά να βγαίνει — χωρίς να αξιολογούνται οι άλλες περιττές συνθήκες.

Με μια μικρή ρουτίνα όπως αυτή, δεν χρειάζεται να ανησυχείτε για την ταχύτητα εκτέλεσης. Αλλά για μεγαλύτερες εφαρμογές στις οποίες η ταχύτητα είναι κρίσιμη, θα πρέπει να γνωρίζετε μια άλλη σύνταξη για τη δομή If-Then.

Δείτε πώς μπορείτε να ξαναγράψετε τη ρουτίνα GreetMe χρησιμοποιώντας αυτήν τη σύνταξη:

Sub GreetMe7()
 Dim Msg As String
 Αν Χρόνος < 0,5 Τότε
   Msg = "Πρωί"
 ElseIf Time >= 0,5 Και Χρόνος < 0,75 Τότε
   Msg = "Απόγευμα"
 Αλλού
   Msg = "Βράδυ"
 Τέλος εαν
 MsgBox “Good” & Msg
End Sub

Όταν μια συνθήκη είναι αληθής, το VBA εκτελεί τις εντολές υπό όρους και η δομή If τελειώνει. Με άλλα λόγια, αυτή η διαδικασία είναι λίγο πιο αποτελεσματική από τα προηγούμενα παραδείγματα. Το συμβιβασμό είναι ότι ο κώδικας είναι πιο δύσκολο να κατανοηθεί.

Ένα άλλο παράδειγμα Αν-Τότε

Ακολουθεί ένα άλλο παράδειγμα που χρησιμοποιεί την απλή μορφή της δομής If-Then. Αυτή η διαδικασία προτρέπει τον χρήστη για μια ποσότητα και στη συνέχεια εμφανίζει την κατάλληλη έκπτωση, με βάση την ποσότητα που εισάγει ο χρήστης:

Sub ShowDiscount()
  Ασθενής ποσότητα όσο διαρκεί
  Ασθενής έκπτωση ως διπλή
  Quantity = InputBox ("Εισαγάγετε την ποσότητα:")
  Αν Ποσότητα > 0 Τότε Έκπτωση = 0,1
  Αν Ποσότητα >= 25 Τότε Έκπτωση = 0,15
  Αν Ποσότητα >= 50 Τότε Έκπτωση = 0,2
  Αν Ποσότητα >= 75 Τότε Έκπτωση = 0,25
  MsgBox "Discount: " & Discount
End Sub

Σημειώστε ότι κάθε δήλωση If-Then σε αυτήν τη ρουτίνα εκτελείται και η τιμή για την Έκπτωση μπορεί να αλλάξει καθώς εκτελούνται οι δηλώσεις. Ωστόσο, η ρουτίνα εμφανίζει τελικά τη σωστή τιμή για το Discount επειδή οι δηλώσεις If-Then είναι κατά σειρά αύξουσας τιμής Discount.

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

Sub ShowDiscount2()
 Ασθενής ποσότητα όσο διαρκεί
 Ασθενής έκπτωση ως διπλή
 Quantity = InputBox ("Εισαγάγετε την ποσότητα: ")
 Αν Ποσότητα > 0 Και Ποσότητα < 25 Τότε
  Έκπτωση = 0,1
 ElseIf Ποσότητα >= 25 Και Ποσότητα < 50 Τότε
  Έκπτωση = 0,15
 ElseIf Ποσότητα >= 50 Και Ποσότητα < 75 Τότε
  Έκπτωση = 0,2
 ElseIf Ποσότητα >= 75 Τότε
  Έκπτωση = 0,25
 Τέλος εαν
 MsgBox "Discount: " & Discount
End Sub

Αυτές οι πολλαπλές δομές If-Then είναι μάλλον δυσκίνητες. Μπορεί να θέλετε να χρησιμοποιήσετε τη δομή If-Then μόνο για απλές δυαδικές αποφάσεις.


Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows

Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows

Πώς να αποκλείσετε το Microsoft Word από το άνοιγμα αρχείων σε λειτουργία μόνο για ανάγνωση στα Windows Το Microsoft Word ανοίγει αρχεία σε λειτουργία μόνο για ανάγνωση, καθιστώντας αδύνατη την επεξεργασία του; Μην ανησυχείτε, οι μέθοδοι είναι παρακάτω

Πώς να διορθώσετε τη λανθασμένη εκτύπωση εγγράφων του Microsoft Word

Πώς να διορθώσετε τη λανθασμένη εκτύπωση εγγράφων του Microsoft Word

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

Διαγράψτε τα σχέδια με στυλό και επισημάνσεις στις διαφάνειες του PowerPoint σας

Διαγράψτε τα σχέδια με στυλό και επισημάνσεις στις διαφάνειες του PowerPoint σας

Εάν έχετε χρησιμοποιήσει το στυλό ή το highlighter για να σχεδιάσετε στις διαφάνειες του PowerPoint κατά τη διάρκεια μιας παρουσίασης, μπορείτε να αποθηκεύσετε τα σχέδια για την επόμενη παρουσίαση ή να τα σβήσετε, ώστε την επόμενη φορά που θα το δείξετε να ξεκινήσετε με καθαρές διαφάνειες PowerPoint. Ακολουθήστε αυτές τις οδηγίες για να διαγράψετε σχέδια με στυλό και επισημάνσεις: Σβήσιμο γραμμών μία στο […]

Περιεχόμενα της βιβλιοθήκης στυλ στο SharePoint 2010

Περιεχόμενα της βιβλιοθήκης στυλ στο SharePoint 2010

Η βιβλιοθήκη στυλ περιέχει αρχεία CSS, αρχεία επεκτάσιμης γλώσσας φύλλου στυλ (XSL) και εικόνες που χρησιμοποιούνται από προκαθορισμένες κύριες σελίδες, διατάξεις σελίδων και στοιχεία ελέγχου στο SharePoint 2010. Για να εντοπίσετε αρχεία CSS στη βιβλιοθήκη στυλ μιας τοποθεσίας δημοσίευσης: Επιλέξτε Ενέργειες τοποθεσίας→ Προβολή Όλο το περιεχόμενο του ιστότοπου. Εμφανίζεται το περιεχόμενο του ιστότοπου. Η βιβλιοθήκη Style βρίσκεται στο […]

Μορφοποίηση αριθμών σε χιλιάδες και εκατομμύρια σε αναφορές του Excel

Μορφοποίηση αριθμών σε χιλιάδες και εκατομμύρια σε αναφορές του Excel

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

Τρόπος κοινής χρήσης και παρακολούθησης τοποθεσιών του SharePoint

Τρόπος κοινής χρήσης και παρακολούθησης τοποθεσιών του SharePoint

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

Πώς να μετατρέψετε ημερομηνίες σε μορφές Julian στο Excel

Πώς να μετατρέψετε ημερομηνίες σε μορφές Julian στο Excel

Οι ημερομηνίες του Ιουλιανού χρησιμοποιούνται συχνά σε περιβάλλοντα παραγωγής ως χρονική σήμανση και γρήγορη αναφορά για έναν αριθμό παρτίδας. Αυτός ο τύπος κωδικοποίησης ημερομηνίας επιτρέπει στους λιανοπωλητές, τους καταναλωτές και τους αντιπροσώπους υπηρεσιών να προσδιορίσουν πότε κατασκευάστηκε ένα προϊόν και, επομένως, την ηλικία του προϊόντος. Οι ημερομηνίες του Ιουλιανού χρησιμοποιούνται επίσης στον προγραμματισμό, τον στρατό και την αστρονομία. Διαφορετικές […]

Πώς να δημιουργήσετε μια εφαρμογή Web Access

Πώς να δημιουργήσετε μια εφαρμογή Web Access

Μπορείτε να δημιουργήσετε μια εφαρμογή Ιστού στην Access 2016. Τι είναι λοιπόν μια εφαρμογή Ιστού; Λοιπόν, ο Ιστός σημαίνει ότι είναι διαδικτυακός και η εφαρμογή είναι απλώς συντομογραφία της «εφαρμογής». Μια προσαρμοσμένη εφαρμογή Ιστού είναι μια διαδικτυακή εφαρμογή βάσης δεδομένων στην οποία έχει πρόσβαση από το cloud χρησιμοποιώντας ένα πρόγραμμα περιήγησης. Δημιουργείτε και συντηρείτε την εφαρμογή Ιστού στην έκδοση για υπολογιστές […]

Γραμμή γρήγορης εκκίνησης στο SharePoint 2010

Γραμμή γρήγορης εκκίνησης στο SharePoint 2010

Οι περισσότερες σελίδες στο SharePoint 2010 εμφανίζουν μια λίστα με συνδέσμους πλοήγησης στη γραμμή γρήγορης εκκίνησης στην αριστερή πλευρά της σελίδας. Η γραμμή γρήγορης εκκίνησης εμφανίζει συνδέσμους προς επιλεγμένο περιεχόμενο ιστότοπου, όπως λίστες, βιβλιοθήκες, τοποθεσίες και σελίδες δημοσίευσης. Η γραμμή γρήγορης εκκίνησης περιλαμβάνει δύο πολύ σημαντικούς συνδέσμους: Σύνδεσμος όλου του περιεχομένου του ιστότοπου: Η […]

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Τι σημαίνουν τα μηνύματα σφάλματος επίλυσης στο Excel;

Για απλά προβλήματα, ο Επίλυση στο Excel συνήθως βρίσκει γρήγορα τις βέλτιστες τιμές μεταβλητής Επίλυσης για τη συνάρτηση αντικειμένου. Ωστόσο, σε ορισμένες περιπτώσεις, ο Επίλυση δυσκολεύεται να βρει τις τιμές της μεταβλητής Επίλυσης που βελτιστοποιούν τη συνάρτηση στόχου. Σε αυτές τις περιπτώσεις, ο Επίλυση εμφανίζει συνήθως ένα μήνυμα ή ένα μήνυμα σφάλματος που περιγράφει ή συζητά το πρόβλημα που […]