Hiljutises ülesandes filtreerisin numbrite veerus VBA -d. Kuid selles numbriveerus olid tekstivormingus numbrid. VBA skripti käivitamisel see muidugi ei töötanud, sest filter oli number ja veerus olid numbrid tekstina. Sel juhul pidin teksti käsitsi numbriteks teisendama ja salvestama. Siis töötas makro suurepäraselt. Kuid ma tahtsin need tekstid VBA skripti abil numbriteks teisendada ja sain sellega hakkama. Tahtsin seda jagada nii, nagu keegi tahaks teada, kuidas tekstiväärtusi VBA abil arvuks teisendada, saavad nad seda vaadata.
Teisendage tekst arvuks, kasutades meetodit Range.NumberFormat
See esimene ja lihtsaim meetod. Ma eelistan seda meetodit teiste meetodite ees, kuna see teisendab valitud Exceli vahemiku otse numbrivormingusse.
Seega, kui teil on fikseeritud vahemik, mille soovite tekstiks teisendada, kasutage seda VBA -katkendit.
Sub ConvertTextToNumber () vahemik ("A3: A8"). NumberFormat = "Üldine" vahemik ("A3: A8"). Väärtus = vahemik ("A3: A8"). Väärtus Lõpp Alam
Ülaltoodud koodi käivitamisel teisendab see vahemiku A3: A8 teksti tekstiks.
See kood võib tunduda elegantsem, kui me selle nii kirjutame.
Alam ConvertTextToNumber () vahemikuga ("A3: A8") .NumberFormat = "Üldine" .Väärtus = .Väärtus Lõpp lõpuga Alam
Kuidas see töötab?
Noh, see on üsna lihtne. Kõigepealt muudame vahemiku numbrivormingu üldiseks. Seejärel panime selle vahemiku väärtuse VBA abil samasse vahemikku. See eemaldab teksti vormindamise täielikult. Lihtne, kas pole?
Muutke dünaamilise vahemiku vormindamise arvu
Ülaltoodud koodis muutsime teksti ülaltoodud fikseeritud vahemiku koodi numbriks, kuid see ei ole enamasti nii. Teksti teisendamiseks mitmesse dünaamilisse vahemikku saame hinnata viimati kasutatud lahtrit või valida vahemiku dünaamiliselt.
See näeks välja selline:
Sub ConvertTextToNumber () koos vahemikuga ("A3: A" & lahtrid (Rows.Count, 1) .End (xlUp) .Row) .NumberFormat = "General" .Value = .Value End with
Siin ma tean, et vahemik algab A3 -st. Aga ma ei tea, kus see võib lõppeda.
Nii tuvastan dünaamiliselt viimati kasutatud Exceli rea, millel on andmed, kasutades VBA katkendlikke lahtreid (Rows.Count, 1). End (xlUp). Rida. See tagastab viimati kasutatud rea numbri, mille ühendame "A3: A" -ga.
Märge: See VBA väljavõte töötab aktiivsel töövihikul ja aktiivsel töölehel. Kui teie kood vahetab mitu lehte, oleks parem määrata kavandatud töölehe vahemiku objekt. Nagu nii
Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Vahemik ("A3: A" & lahtrid (Rows.Count, 1) .End (xlUp) .Rida) Rng .NumberFormat = "General" .Value = .Väärtus Lõpp lõpuga Alam
Ülaltoodud kood muudab teksti alati seda koodi sisaldava töövihiku lehe 1 numbriks.
Loop ja CSng teksti muutmiseks numbriks
Teine meetod on iga lahtri läbimine ja lahtri väärtuse muutmine CSng funktsiooni abil arvuks. Siin on kood.
Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Vahemik ("A3: A" & lahtrid (Rows.Count, 1). End (xlUp) .Row) Iga cel kohta Rng.Cells cel.Value = CSng (cel.Value) Järgmine cel End Sub
Ülaltoodud VBA -katkendis kasutame VBA For -tsüklit, et itereerida vahemiku iga lahtrit ja teisendada iga lahtri väärtus arvuks, kasutades VBA funktsiooni CSng.
Nii et jah, poisid, nii saate VBA abil Exceli tekstid numbriteks muuta. Neid katkendeid saate kasutada töölehe ettevalmistamiseks enne, kui teete nendega numbritoiminguid. Loodan, et olin piisavalt selgitav. Tööfaili saate alla laadida siit.
Muutke tekst numbriks VBA abil.
Kui teil on selle teksti ja numbri teisendamise või mõne muu Exceli/VBA -ga seotud päringu osas kahtlusi, küsige allpool kommentaaride jaotises.
Kuidas saada teksti ja numbreid tagurpidi Microsoft Excelis VBA kaudu | Numbri ja teksti ümberpööramiseks kasutame VBA -s silmuseid ja keskfunktsiooni. 1234 teisendatakse 4321 -ks, "teie" teisendatakse "uoy" -ks. Siin on katkend.
Vormindage andmed kohandatud numbrivormingutega, kasutades Microsoft Excelis VBA -d | Exceli konkreetsete veergude numbrivormingu muutmiseks kasutage seda VBA -katkendit. See varjab määratud numbrivormingu ühe klõpsuga määratud vormingusse.
Populaarsed artiklid:
50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.
Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.
COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.
Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.