Schimbați textul în număr folosind VBA

Cuprins:

Anonim

Într-o sarcină recentă, făceam filtrarea prin VBA pe o coloană numerică. Dar acea coloană numerică avea numere în format text. Când rulez scriptul VBA, nu a funcționat, desigur, deoarece filtrul era un număr, iar coloana avea numere ca text. În acest caz, trebuia să convertesc manual textul în numere și să îl salvez. Apoi macro-ul a funcționat perfect. Dar am vrut să convertesc aceste texte în numere folosind scriptul VBA și am reușit să o fac. Am vrut să împărtășesc acest lucru ca și cum cineva ar vrea să știe cum să convertească valorile textului într-un număr folosind VBA, ar putea arunca o privire la el.

Convertiți textul în număr utilizând metoda Range.NumberFormat

Această primă și cea mai ușoară metodă. Prefer această metodă decât alte metode, deoarece convertește direct gama excel selectată în format numeric.

Deci, dacă aveți un interval fix pe care doriți să îl convertiți în text, utilizați acest fragment VBA.

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

Când rulați codul de mai sus, acesta convertește textul intervalului A3: A8 în text.

Acest cod poate arăta mai elegant dacă îl scriem astfel.

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

Cum functioneazã?

Ei bine, este destul de simplu. Mai întâi schimbăm formatul numeric al gamei la General. Apoi punem valoarea acelui interval în același interval folosind VBA. Aceasta elimină complet formatarea textului. Simplu, nu-i așa?

Modificați numărul de formatare a unui interval dinamic

În codul de mai sus, am schimbat textul cu numărul din codul de mai sus al unui interval fix, dar acest lucru nu va fi cazul de cele mai multe ori. Pentru a converti textul într-un număr de intervale dinamice, putem evalua ultima celulă utilizată sau putem selecta dinamic intervalul.

Așa ar arăta:

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

Aici, știu că gama începe de la A3. Dar nu știu unde se poate termina.
Așa că identific dinamic ultimul rând Excel folosit care conține date folosind fragmentul de celule VBA (Rows.Count, 1) .End (xlUp) .Row. Returnează ultimul număr de rând utilizat pe care îl concatenăm cu „A3: A”.

Notă: Acest fragment VBA va funcționa pe registrul de lucru activ și pe foaia de lucru activă. Dacă codul dvs. trece prin mai multe foi, ar fi mai bine să setați un obiect de interval al foii de lucru intenționate. Asa

Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp) .Row) With Rng .NumberFormat = "General" .Value = .Valoare Sfârșit cu Sfârșit Sub 

Codul de mai sus va schimba întotdeauna textul cu numărul foii 1 a registrului de lucru care conține acest cod.

Buclă și CSng pentru a schimba textul la număr

O altă metodă este să parcurgeți fiecare celulă și să schimbați valoarea celulei într-un număr folosind funcția CSng. Iată codul.

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

În fragmentul VBA de mai sus, folosim bucla VBA For pentru a itera peste fiecare celulă din interval și pentru a converti valoarea fiecărei celule într-un număr folosind funcția CSng a VBA.

Deci, băieți, așa puteți schimba textele în numere în Excel folosind VBA. Puteți utiliza aceste fragmente pentru a vă pregăti foaia de lucru înainte de a efectua orice operație numerică pe ele. Sper că am fost suficient de explicativ. Puteți descărca fișierul de lucru de aici.

Schimbați textul în număr folosind VBA.

Dacă aveți îndoieli cu privire la conversia textului la număr sau la orice altă interogare legată de Excel / VBA, întrebați în secțiunea de comentarii de mai jos.

Cum să obțineți Text & Number în Reverse prin VBA în Microsoft Excel | Pentru a inversa numărul și textul, folosim bucle și funcția mid în VBA. 1234 va fi convertit la 4321, „tu” va fi convertit la „uoy”. Iată fragmentul.

Formatați date cu formate de număr personalizate utilizând VBA în Microsoft Excel | Pentru a modifica formatul numeric al coloanelor specifice din Excel, utilizați acest fragment VBA. Acoperă formatul numărului formatului specificat la formatul specificat într-un singur clic.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu este nevoie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.