Συνάρτηση Eval

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο προέρχεται από μηχανική μετάφραση, δείτε την αποποίηση ευθυνών. Θα βρείτε την αγγλική έκδοση του παρόντος άρθρου εδώ για αναφορά.

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

Μπορείτε να δημιουργήσετε μια συμβολοσειρά και να μεταβιβάσετε στη συνάρτηση Eval τη συμβολοσειρά σαν μια πραγματική παράσταση. Η συνάρτηση Eval αξιολογεί τα παράσταση συμβολοσειράς και επιστρέφει την τιμή. Για παράδειγμα, Eval("1 + 1") επιστρέψει την τιμή 2.

Εάν περάσετε στη συνάρτηση Eval μια συμβολοσειρά που περιέχει το όνομα μιας συνάρτησης, η συνάρτηση Eval επιστρέφει την τιμή επιστροφής της συνάρτησης. Για παράδειγμα, Eval("Chr$(65)") επιστρέφει "Α".

Σύνταξη

Eval ( παράσταση_συμβολοσειράς )

Το όρισμα παράσταση_συμβολοσειράς είναι μια παράσταση που αξιολογείται σε αλφαριθμητική συμβολοσειρά κειμένου. Για παράδειγμα, παράσταση_συμβολοσειράς μπορεί να είναι μια συνάρτηση που επιστρέφει μια συμβολοσειρά ή αριθμητική τιμή. Ή μπορεί να είναι μια αναφορά σε μια στοιχείο ελέγχου σε μια φόρμα. Το όρισμα παράσταση_συμβολοσειράς πρέπει είναι σε μια συμβολοσειρά ή αριθμητική τιμή. Αυτό δεν είναι δυνατό να είναι ένα αντικείμενο Microsoft Access.

ΣΗΜΕΙΩΣΗ : Παραδείγματα που ακολουθούν δείχνουν τη χρήση αυτής της συνάρτησης σε ένα έργο Visual Basic για τη λειτουργική μονάδα Applications (VBA). Για περισσότερες πληροφορίες σχετικά με την εργασία με τη VBA, επιλέξτε Αναφορά προγραμματιστών στην αναπτυσσόμενη λίστα δίπλα στο στοιχείο Αναζήτηση και πληκτρολογήστε μία ή περισσότερες όρων στο πλαίσιο αναζήτησης.

ΣΗΜΕΙΩΣΗ : Εάν δώσετε το όνομα μιας συνάρτησης στη συνάρτηση Eval , πρέπει να συμπεριλάβετε παρενθέσεις μετά το όνομα της συνάρτησης στο όρισμα παράσταση_συμβολοσειράς . Για παράδειγμα:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Παρατηρήσεις

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval σε ένα στοιχείο ελέγχου υπολογισμού σε μια φόρμα ή έκθεση ή σε μια μακροεντολή ή μια λειτουργική μονάδα. Η συνάρτηση Eval επιστρέφει ένα μεταβλητή που είναι μια συμβολοσειρά ή αριθμητική έναν τύπο.

Το όρισμα παράσταση_συμβολοσειράς πρέπει να είναι μια παράσταση που είναι αποθηκευμένο σε μια συμβολοσειρά. Εάν περάσετε στη συνάρτηση Eval μια συμβολοσειρά που δεν περιέχει μια αριθμητική παράσταση ή όνομα συνάρτησης, αλλά μόνο μια συμβολοσειρά απλού κειμένου, εμφανίζεται ένα σφάλμα χρόνου εκτέλεσης. Για παράδειγμα, Eval("Smith") προκαλεί σφάλμα.

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

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Eval για πρόσβαση σε παραστάσεις τελεστών που συνήθως δεν είναι διαθέσιμοι σε μια Visual Basic for Applications (VBA) λειτουργική μονάδα. Για παράδειγμα, δεν μπορείτε να χρησιμοποιήσετε τους τελεστές SQL μεταξύ... Και ή στο απευθείας στον κώδικά σας, αλλά μπορείτε να τις χρησιμοποιήσετε σε μια παράσταση που διαβιβάζεται στη συνάρτηση Eval .

Το επόμενο παράδειγμα καθορίζει εάν η τιμή ενός στοιχείου ελέγχου περιοχής αποστολής σε μια φόρμα "Παραγγελίες" είναι μία από τις καθορισμένες συντομογραφίες. Εάν το πεδίο περιέχει μία από τις συντομογραφίες, intState θα είναι True (– 1). Σημειώστε ότι μπορείτε να χρησιμοποιήσετε μονά εισαγωγικά (') για να συμπεριλάβετε μια συμβολοσειρά μέσα σε μια άλλη συμβολοσειρά.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Παράδειγμα

Το παρακάτω παράδειγμα προϋποθέτει ότι έχετε μια σειρά από 50 συναρτήσεις που ορίζονται από το A1, A2 και ούτω καθεξής. Αυτό το παράδειγμα χρησιμοποιεί τη συνάρτηση Eval για κάθε συνάρτηση call στη σειρά.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

Στο επόμενο παράδειγμα ενεργοποιείται ένα συμβάν κάντε κλικ στην επιλογή , όπως αν ο χρήστης έκανε κλικ σε ένα κουμπί σε μια φόρμα. Εάν η τιμή της ιδιότητας OnClick του κουμπιού αρχίζει με το σύμβολο ίσον (=), που σημαίνει ότι είναι το όνομα μιας συνάρτησης, το Eval λειτουργία καλεί τη συνάρτηση, η οποία είναι ισοδύναμη με το συμβάν κάντε κλικ στην επιλογή ενεργοποίηση. Εάν η τιμή δεν αρχίζει με το σύμβολο ίσον, στη συνέχεια, η τιμή πρέπει να ονομάσετε μια μακροεντολή. Τη μέθοδο RunMacro του αντικειμένου DoCmd εκτελείται η καθορισμένη μακροεντολή.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

ΣΗΜΕΙΩΣΗ : Αποποίηση ευθυνών αυτόματης μετάφρασης: Αυτό το άρθρο έχει μεταφραστεί από ένα σύστημα υπολογιστή χωρίς ανθρώπινη παρέμβαση. Η Microsoft προσφέρει αυτές τις αυτόματες μεταφράσεις για να βοηθά τους μη αγγλόφωνους χρήστες να απολαμβάνουν περιεχόμενο σχετικά με προϊόντα, υπηρεσίες και τεχνολογίες της Microsoft. Το άρθρο προέρχεται από μηχανική μετάφραση, συνεπώς ενδέχεται να περιέχει λάθη λεξιλογίου, σύνταξης ή γραμματικής.

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×