Αλλαγή κειμένου σε αριθμό χρησιμοποιώντας το VBA

Πίνακας περιεχομένων:

Anonim

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

Μετατρέψτε κείμενο σε αριθμό χρησιμοποιώντας τη μέθοδο Range.NumberFormat

Αυτή η πρώτη και ευκολότερη μέθοδος. Προτιμώ αυτήν τη μέθοδο έναντι άλλων μεθόδων καθώς μετατρέπει απευθείας το επιλεγμένο εύρος excel σε μορφή αριθμών.

Έτσι, εάν έχετε ένα σταθερό εύρος που θέλετε να μετατρέψετε σε κείμενο, χρησιμοποιήστε αυτό το απόσπασμα VBA.

Sub ConvertTextToNumber () Range ("A3: A8"). NumberFormat = "General" Range ("A3: A8"). Value = Range ("A3: A8"). Value End End 

Όταν εκτελείτε τον παραπάνω κώδικα μετατρέπει το κείμενο της περιοχής A3: A8 σε κείμενο.

Αυτός ο κώδικας μπορεί να φαίνεται πιο κομψός αν τον γράψουμε έτσι.

Sub ConvertTextToNumber () With Range ("A3: A8") .NumberFormat = "General". Value =. Value End With End Sub 

Πώς λειτουργεί;

Λοιπόν, είναι αρκετά απλό. Αλλάζουμε πρώτα τη μορφή αριθμών του εύρους σε Γενικά. Στη συνέχεια, βάζουμε την τιμή αυτού του εύρους στο ίδιο εύρος χρησιμοποιώντας VBA. Αυτό αφαιρεί εντελώς τη μορφοποίηση κειμένου. Απλό, έτσι δεν είναι;

Αλλάξτε τον αριθμό μορφοποίησης ενός δυναμικού εύρους

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

Έτσι θα έμοιαζε:

Sub ConvertTextToNumber () With Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp). Row) .NumberFormat = "General" .Value = .Value End With 

Εδώ, ξέρω ότι το εύρος ξεκινά από το Α3. Αλλά δεν ξέρω που μπορεί να τελειώσει.
Έτσι, προσδιορίζω δυναμικά την τελευταία χρησιμοποιούμενη σειρά Excel που περιέχει δεδομένα χρησιμοποιώντας τα κελιά αποσπάσματος VBA (Rows.Count, 1). Τέλος (xlUp). Σειρά. Επιστρέφει τον τελευταίο αριθμό σειράς που χρησιμοποιούμε με "A3: A".

Σημείωση: Αυτό το απόσπασμα VBA θα λειτουργήσει στο ενεργό βιβλίο εργασίας και το ενεργό φύλλο εργασίας. Εάν ο κωδικός σας αλλάζει μέσω πολλαπλών φύλλων, θα ήταν καλύτερο να ορίσετε ένα αντικείμενο εύρους του προοριζόμενου φύλλου εργασίας. Σαν αυτό

Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp). Row) With Rng .NumberFormat = "General" .Value =. Τιμή λήξης με τέλος υπο 

Ο παραπάνω κώδικας θα αλλάζει πάντα το κείμενο στον αριθμό του φύλλου 1 του βιβλίου εργασίας που περιέχει αυτόν τον κωδικό.

Loop και CSng για να αλλάξετε το κείμενο σε αριθμό

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

Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp). Row) For every cel In Rng.Cells cel.Vue = CSng (cel.Value) Next cel End Sub 

Στο παραπάνω απόσπασμα VBA, χρησιμοποιούμε τον βρόχο VBA For για επανάληψη σε κάθε κελί της περιοχής και τη μετατροπή της τιμής κάθε κελιού σε έναν αριθμό χρησιμοποιώντας τη συνάρτηση CSng του VBA.

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

Αλλαγή κειμένου σε αριθμό χρησιμοποιώντας το VBA.

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

Πώς να αποκτήσετε κείμενο και αριθμό αντίστροφα μέσω VBA στο Microsoft Excel | Για να αντιστρέψουμε τον αριθμό και το κείμενο, χρησιμοποιούμε βρόχους και συνάρτηση mid στο VBA. Το 1234 θα μετατραπεί σε 4321, το "εσείς" θα μετατραπεί σε "uoy". Εδώ είναι το απόσπασμα.

Μορφοποιήστε δεδομένα με προσαρμοσμένες μορφές αριθμών χρησιμοποιώντας VBA στο Microsoft Excel | Για να αλλάξετε τη μορφή αριθμού συγκεκριμένων στηλών στο Excel, χρησιμοποιήστε αυτό το απόσπασμα VBA. Καλύπτει τη μορφή αριθμών που έχει καθοριστεί σε συγκεκριμένη μορφή με ένα κλικ.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.