VBA VAL | Πώς να χρησιμοποιήσετε τη λειτουργία VBA VAL; (με παραδείγματα)

Λειτουργία Val VBA του Excel

Η συνάρτηση Val στο vba εμπίπτει στις συναρτήσεις συμβολοσειράς, είναι επίσης μια ενσωματωμένη συνάρτηση στο VBA που χρησιμοποιείται για τη λήψη των αριθμητικών τιμών από μια μεταβλητή δεδομένων, ας υποθέσουμε ότι αν μια μεταβλητή έχει τιμή ως A10 τότε η συνάρτηση val θα μας δώσει 10 ως έξοδο, αυτό παίρνει μια συμβολοσειρά ως όρισμα και επιστρέφει τους αριθμούς που υπάρχουν στη συμβολοσειρά.

VAL σημαίνει VALUE στην ορολογία VBA. Αυτή η συνάρτηση μετατρέπει τη συμβολοσειρά που περιέχει αριθμούς σε πραγματικό αριθμό. Για παράδειγμα, εάν παρέχετε τη συμβολοσειρά κειμένου "1234 Global", θα επιστρέψει μόνο το αριθμητικό μέρος, δηλαδή το 1234.

Συχνά, όταν κατεβάζουμε ή λαμβάνουμε τα δεδομένα από αριθμούς ιστού, συνήθως αποθηκεύονται ως τιμές κειμένου σε ένα υπολογιστικό φύλλο. Η μετατροπή κειμένου σε αριθμούς είναι η δυσκολότερη εργασία αν δεν γνωρίζετε τη σωστή λειτουργία στο excel. Ως κανονική συνάρτηση φύλλου εργασίας, έχουμε μια συνάρτηση που ονομάζεται VALUE η οποία θα μετατρέψει όλη τη συμβολοσειρά που αντιπροσωπεύει τους αριθμούς σε ακριβείς αριθμούς με μια απλή συνάρτηση στο φύλλο εργασίας. Σε αυτό το άρθρο, θα δείξουμε πώς αυτό μπορεί να επιτευχθεί στο VBA χρησιμοποιώντας τη συνάρτηση VAL.

Σύνταξη

Έχει μόνο ένα επιχείρημα, δηλαδή String.

  • String: Είναι απλά μια τιμή συμβολοσειράς που προσπαθούμε να βγάλουμε το αριθμητικό μέρος από αυτό.

Έτσι, η συνάρτηση VAL μετατρέπει την παρεχόμενη συμβολοσειρά σε αριθμητική τιμή.

Σημείωση: Η συνάρτηση VAL αγνοεί πάντα τους διαστημικούς χαρακτήρες και συνεχίζει να διαβάζει τους αριθμούς μετά τον διαστημικό χαρακτήρα ή τους χαρακτήρες.

Για παράδειγμα, εάν η παρεχόμενη συμβολοσειρά είναι "145 45 666 3", θα αγνοήσει τους διαστημικούς χαρακτήρες και θα επιστρέψει το αποτέλεσμα ως "145456663".

Παραδείγματα συνάρτησης VAL στο Excel VBA

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA Val Function Excel - Πρότυπο VBA Val Function Excel

Παράδειγμα # 1

Ας δοκιμάσουμε το πρώτο παράδειγμα με απλό αριθμό, δηλαδή "14 56 47"

Ο παρακάτω κώδικας είναι για εσάς.

Κώδικας:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Μετατροπή των παραπάνω ως 145647 MsgBox k End Sub 

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

Παράδειγμα # 2

Σε αυτό το παράδειγμα, θα δούμε ποιο είναι το αποτέλεσμα της συμβολοσειράς "+456".

Κώδικας:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Μετατρέψτε τα παραπάνω ως 456 MsgBox k End Sub 

Μπορείτε να εκτελέσετε αυτόν τον κωδικό χειροκίνητα ή μέσω του πλήκτρου F5 για να επιστρέψετε την τιμή ως 456 αγνοώντας το +456.

Παράδειγμα # 3

Τώρα ας δοκιμάσουμε τον ίδιο αριθμό με αρνητικό πρόσημο.

Κώδικας:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Μετατροπή των παραπάνω ως -456 MsgBox k End Sub 

Αυτός ο κωδικός θα επιστρέψει την τιμή ως -456 μόνο επειδή πρέπει να εμφανίζεται ο αριθμός με το σύμβολο χειριστή.

Παράδειγμα # 4

Τώρα ας δοκιμάσουμε αυτήν τη συμβολοσειρά "100 Kg".

Κώδικας:

 Sub Val_Example4 () Dim k As Variant k = Val ("100 KG") 'Αγνοεί το KG και επιστρέφει μόνο 100 MsgBox k End Sub 

Εάν εκτελέσετε αυτόν τον κωδικό χειροκίνητα ή χρησιμοποιώντας το πλήκτρο F5, τότε αυτός ο παραπάνω κωδικός αγνοεί το "KG" και επιστρέφει μόνο "100" στο πλαίσιο μηνυμάτων VBA.

Παράδειγμα # 5

Τώρα δοκιμάστε τη συμβολοσειρά ημερομηνίας, δηλαδή "14-05-2018".

Κώδικας:

Sub Val_Example5 () Dim k As Variant k = Val ("14-05-2019") 'Επιστρέφει 14 ως αποτέλεσμα. MsgBox k End Sub

Ο παραπάνω κωδικός επιστρέφει 14 ως αποτέλεσμα, επειδή η συνάρτηση VAL μπορεί να πάρει μόνο την αριθμητική τιμή έως ότου εντοπίσει διαφορετικό από τον αριθμητικό χαρακτήρα.

Παράδειγμα # 6

Τώρα δοκιμάστε τη συμβολοσειρά "7459Good456".

Κώδικας:

Sub Val_Example6 () Dim k As Variant k = Val ("7459 Good 456") 'Επιστρέφει 7459 ως αποτέλεσμα. MsgBox k End Sub

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

Παράδειγμα # 7

Τώρα δοκιμάστε την τιμή συμβολοσειράς "H 12456".

Κώδικας:

Sub Val_Example7 () Dim k As Variant k = Val ("H 12456") 'Επιστρέφει 0 ως αποτέλεσμα. MsgBox k End Sub

Εκτελέστε τον παραπάνω κώδικα χρησιμοποιώντας το πλήκτρο συντόμευσης F5 ή χειροκίνητα και επιστρέφει το αποτέλεσμα ως μηδέν. Επειδή ο πρώτος χαρακτήρας της συμβολοσειράς που παρέχουμε είναι μη αριθμητικός χαρακτήρας, έτσι, το αποτέλεσμα είναι μηδέν.

Παράδειγμα # 8

Τώρα δοκιμάστε αυτήν τη συμβολοσειρά "24545. 2 ".

Κώδικας:

Sub Val_Example8 () Dim k As Variant k = Val ("24545. 2") 'Επιστρέφει 24545.2 ως αποτέλεσμα. MsgBox k End Sub

Ο κωδικός επιστρέφει το αποτέλεσμα ως 24545.2, επειδή η συνάρτηση VBA VAL θεωρεί τον χαρακτήρα τελεία (.) Ως τον δεκαδικό χαρακτήρα και επιστρέφει το αποτέλεσμα αναλόγως.


$config[zx-auto] not found$config[zx-overlay] not found