Pakeiskite tekstą į skaičių naudodami VBA

Turinys:

Anonim

Neseniai atlikdamas užduotį, aš filtravau per VBA skaičių stulpelyje. Tačiau šiame skaičių stulpelyje buvo teksto formato skaičiai. Kai paleidau VBA scenarijų, tai, žinoma, neveikė, nes filtras buvo skaičius, o stulpelyje - skaičiai kaip tekstas. Tokiu atveju turėjau rankiniu būdu tekstą paversti skaičiais ir išsaugoti. Tada makrokomanda puikiai veikė. Bet aš norėjau šiuos tekstus paversti skaičiais, naudojant VBA scenarijų, ir man pavyko tai padaryti. Norėjau pasidalinti tuo, tarsi kas nors norėtų sužinoti, kaip teksto vertes paversti skaičiais naudojant VBA, gali į tai pažvelgti.

Konvertuokite tekstą į skaičių naudodami metodą Range.NumberFormat

Tai pirmasis ir lengviausias būdas. Man labiau patinka šis metodas nei kiti metodai, nes jis tiesiogiai konvertuoja pasirinktą „Excel“ diapazoną į skaičių formatą.

Taigi, jei turite fiksuotą diapazoną, kurį norite konvertuoti į tekstą, naudokite šį VBA fragmentą.

Sub ConvertTextToNumber () diapazonas ("A3: A8"). NumberFormat = "Bendras" diapazonas ("A3: A8"). Vertė = diapazonas ("A3: A8"). 

Kai paleisite aukščiau pateiktą kodą, jis konvertuoja diapazono A3: A8 tekstą į tekstą.

Šis kodas gali atrodyti elegantiškiau, jei jį parašysime taip.

Sub ConvertTextToNumber () su diapazonu ("A3: A8") .NumberFormat = "General" .Value = .Value End with End Sub 

Kaip tai veikia?

Na, tai gana paprasta. Pirmiausia mes pakeičiame diapazono skaičių formatą į Bendrąjį. Tada mes įtraukėme to diapazono vertę į tą patį diapazoną naudodami VBA. Tai visiškai pašalina teksto formatavimą. Paprasta, ar ne?

Pakeiskite dinaminio diapazono formatavimo skaičių

Aukščiau pateiktame kode mes pakeitėme tekstą į skaičių, nurodytą aukščiau esančiame fiksuoto diapazono kode, tačiau dažniausiai taip nebus. Norėdami konvertuoti tekstą į daugybę dinaminių diapazonų, galime įvertinti paskutinį kartą naudotą langelį arba dinamiškai pasirinkti diapazoną.

Štai kaip tai atrodytų:

Sub ConvertTextToNumber () su diapazonu ("A3: A" ir langeliai (Rows.Count, 1). End (xlUp) .Row) .NumberFormat = "General" .Value = .Value End With 

Čia aš žinau, kad diapazonas prasideda nuo A3. Bet nežinau, kuo tai gali baigtis.
Taigi dinamiškai identifikuoju paskutinę naudojamą „Excel“ eilutę, kurioje yra duomenų, naudojant VBA fragmentų langelius (Rows.Count, 1). End (xlUp). Pateikiamas paskutinis naudojamas eilutės numeris, kurį mes sujungiame su „A3: A“.

Pastaba: Šis VBA fragmentas veiks su aktyvia darbaknyge ir aktyviu darbalapiu. Jei jūsų kodas persijungia per kelis lapus, geriau būtų nustatyti numatyto darbalapio diapazono objektą. Kaip šitas

Sub ConvertTextToNumber () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Diapazonas ("A3: A" ir langeliai (Rows.Count, 1). End (xlUp) .Row) Su Rng .NumberFormat = "General" .Value = .Verta Pabaigos pabaiga Sub 

Aukščiau pateiktas kodas visada pakeis tekstą į darbo knygos, kurioje yra šis kodas, lapo1 numerį.

„Loop“ ir „CSng“, jei norite pakeisti tekstą į skaičių

Kitas būdas yra perjungti kiekvieną langelį ir pakeisti langelio reikšmę į skaičių naudojant CSng funkciją. Štai kodas.

Sub ConvertTextToNumberLoop () Set Rng = ThisWorkbook.Sheets ("Sheet1"). Diapazonas ("A3: A" ir langeliai (Rows.Count, 1). End (xlUp) .Row) Už kiekvieną cel In Rng.Cells cel.Value = CSng (cel.Value) Kitas cel End Sub 

Aukščiau pateiktame VBA fragmente mes naudojame „VBA For“ kilpą, kad kartotume kiekvieną diapazono langelį ir konvertuotume kiekvienos ląstelės vertę į skaičių naudodami VBA CSng funkciją.

Taigi taip, vaikinai, taip galite pakeisti tekstus į skaičius „Excel“ naudodami VBA. Šiuos fragmentus galite naudoti norėdami paruošti darbalapį prieš atlikdami bet kokius skaičiaus veiksmus. Tikiuosi, kad buvau pakankamai aiškinantis. Čia galite atsisiųsti darbo failą.

Pakeiskite tekstą į skaičių naudodami VBA.

Jei turite kokių nors abejonių dėl šio teksto į skaičių konvertavimo ar kitos su „Excel“/VBA susijusios užklausos, paklauskite žemiau esančiame komentarų skyriuje.

Kaip gauti tekstą ir skaičių atvirkščiai per VBA „Microsoft Excel“ | Norėdami pakeisti skaičių ir tekstą, VBA naudojame kilpas ir vidurio funkciją. 1234 bus paverstas į 4321, „jūs“ - į „uoy“. Štai fragmentas.

Formatuokite duomenis pasirinktiniais skaičių formatais naudodami „Microsoft Excel“ VBA | Norėdami pakeisti konkrečių „Excel“ stulpelių skaičių formatą, naudokite šį VBA fragmentą. Tai vienu paspaudimu paverčia nurodyto skaičiaus formatą į nurodytą formatą.

Populiarūs straipsniai:

50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų leis dar greičiau dirbti naudojant „Excel“.

„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.

COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint skaičiuoti konkrečią vertę, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.

Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.