Промените текст у број помоћу ВБА

Преглед садржаја:

Anonim

У недавном задатку сам радио филтрирање кроз ВБА у колони са бројевима. Али та бројчана колона имала је бројеве у текстуалном формату. Када сам покренуо ВБА скрипту, то наравно није функционисало, јер је филтер био број, а колона је имала бројеве као текст. У том случају морао сам ручно да претворим текст у бројеве и сачувам га. Тада је макро радио савршено. Али хтео сам да ове текстове претворим у бројеве помоћу ВБА скрипте и то сам успео. Желео сам да ово поделим као да неко жели да зна како да претвори текстуалне вредности у број помоћу ВБА, може то да погледа.

Претворите текст у број помоћу методе Ранге.НумберФормат

Ова прва и најједноставнија метода. Више волим ову методу у односу на друге методе јер директно претвара изабрани Екцел опсег у формат броја.

Дакле, ако имате фиксни опсег који желите да претворите у текст, користите овај ВБА исечак.

Суб ПретвориТектТоНумбер () Распон ("А3: А8"). НумберФормат = "Општи" Опсег ("А3: А8"). Вредност = Опсег ("А3: А8"). Вредност Крај Суб 

Када покренете горњи код, он претвара текст опсега А3: А8 у текст.

Овај код може изгледати елегантније ако га напишемо овако.

Суб ЦонвертТектТоНумбер () са опсегом ("А3: А8") .НумберФормат = "Опште" .Вредност = .Вредност завршава са завршном под 

Како то функционише?

Па, сасвим је једноставно. Прво мењамо формат броја опсега у Опште. Затим смо вредност тог опсега ставили у исти опсег користећи ВБА. Ово потпуно уклања обликовање текста. Једноставно, зар не?

Промените број форматирања динамичког опсега

У горњем коду смо променили текст у број у горњем коду фиксног опсега, али то најчешће неће бити случај. Да бисмо текст претворили у бројне динамичке опсеге, можемо проценити последњу коришћену ћелију или динамички изабрати опсег.

Овако би то изгледало:

Суб ЦонвертТектТоНумбер () Са опсегом ("А3: А" & ћелије (Ровс.Цоунт, 1) .Енд (клУп) .Ров) .НумберФормат = "Генерал" .Валуе = .Валуе Енд Витх 

Овде знам да распон почиње од А3. Али не знам где би то могло да се заврши.
Тако сам динамички идентификовао последњи коришћени Екцел ред који садржи податке користећи ћелије ВБА фрагмента (Ровс.Цоунт, 1) .Енд (клУп) .Ров. Враћа последњи коришћени број реда који повезујемо са „А3: А“.

Белешка: Овај ВБА исечак ће радити на активној радној свесци и активном радном листу. Ако се ваш код пребацује кроз више листова, било би боље поставити објекат опсега предвиђеног радног листа. Овако

Суб ЦонвертТектТоНумбер () Сет Рнг = ТхисВоркбоок.Схеетс ("Схеет1"). Ранге ("А3: А" & Целлс (Ровс.Цоунт, 1) .Енд (клУп) .Ров) Витх Рнг .НумберФормат = "Генерал" .Валуе = .Вредност Енд Витх Енд Суб 

Горњи код ће увек променити текст у број листа 1 радне свеске који садржи овај код.

Лооп и ЦСнг за промену текста у број

Друга метода је да прођете кроз сваку ћелију и промените вредност ћелије у број помоћу функције ЦСнг. Ево кода.

Суб ЦонвертТектТоНумберЛооп () Сет Рнг = ТхисВоркбоок.Схеетс ("Схеет1"). Ранге ("А3: А" & Целлс (Ровс.Цоунт, 1) .Енд (клУп) .Ров) За сваку ћелију У Рнг.Целлс цел.Валуе = ЦСнг (цел.Валуе) Следећи цел Енд Суб 

У горњем ВБА исечку, користимо петљу ВБА Фор за понављање сваке ћелије у опсегу и претварање вредности сваке ћелије у број помоћу ЦСнг функције ВБА.

Па да, момци, ево како можете променити текстове у бројеве у Екцелу помоћу ВБА. Ове исечке можете користити за припрему радног листа пре него што на њима извршите било коју операцију броја. Надам се да сам довољно објаснио. Радну датотеку можете преузети овде.

Промените текст у број помоћу ВБА.

Ако имате било каквих недоумица у вези ове конверзије текста у број или било ког другог упита везаног за Екцел/ВБА, питајте у одељку за коментаре испод.

Како добити обрнути текст и број путем ВБА у Мицрософт Екцелу | За поништавање броја и текста користимо петље и средњу функцију у ВБА. 1234 ће бити претворено у 4321, „ви“ ће бити претворено у „уои“. Ево исечка.

Форматирајте податке прилагођеним форматима бројева помоћу ВБА у Мицрософт Екцелу | Да бисте променили формат броја одређених колона у Екцелу, користите овај ВБА исечак. Он покрива формат броја који је наведен у наведеном формату једним кликом.

Популарни чланци:

50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће учинити да радите још брже на Екцелу.

Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.

ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате филтрирати податке да бисте рачунали одређену вредност. Цоунтиф функција је неопходна за припрему ваше контролне табле.

Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.