Променете текста на номер с помощта на VBA

В скорошна задача правех филтриране през VBA в колона с числа. Но тази колона с числа имаше числа в текстов формат. Когато стартирах VBA скрипта, той не работи, разбира се, защото филтърът беше число и колоната имаше числа като текст. В такъв случай трябваше да превърна текста в числа ръчно и да го запиша. Тогава макросът работи перфектно. Но исках да конвертирам тези текстове в числа, използвайки скрипта VBA и успях да го направя. Исках да споделя това, сякаш някой иска да знае как да преобразува текстовите стойности в число с помощта на VBA, може да го разгледа.

Преобразувайте текст в число, като използвате метода Range.NumberFormat

Този първи и най -лесен метод. Предпочитам този метод пред други методи, тъй като директно преобразува избрания диапазон на Excel в числов формат.

Така че, ако имате фиксиран диапазон, който искате да преобразувате в текст, използвайте този VBA фрагмент.

Sub ConvertTextToNumber () Диапазон ("A3: A8"). NumberFormat = "Общ" Диапазон ("A3: A8"). Стойност = Обхват ("A3: A8"). Стойност Край Sub 

Когато стартирате горния код, той преобразува текста от диапазон A3: A8 в текст.

Този код може да изглежда по -елегантен, ако го напишем така.

Sub ConvertTextToNumber () с обхват ("A3: A8") .NumberFormat = "Общи" .Value = .Value End With End Sub 

Как работи?

Е, това е съвсем просто. Първо променяме числовия формат на диапазона на Общ. След това поставяме стойността на този диапазон в същия диапазон, използвайки VBA. Това премахва изцяло форматирането на текста. Просто, нали?

Променете броя на форматирането на динамичен диапазон

В горния код променихме текста на номер в горния код с фиксиран диапазон, но това няма да е така през повечето време. За да преобразуваме текст в редица динамични диапазони, можем да оценим последната използвана клетка или да изберем диапазона динамично.

Ето как би изглеждало:

Sub ConvertTextToNumber () с диапазон ("A3: A" & клетки (Rows.Count, 1) .End (xlUp) .Row) .NumberFormat = "General" .Value = .Value End With 

Тук знам, че диапазонът започва от А3. Но не знам къде може да свърши.
Така че динамично идентифицирам последния използван ред на Excel, който има данни в него, използвайки клетките на фрагмента VBA (Rows.Count, 1) .End (xlUp) .Row. Той връща последния използван номер на ред, който свързваме с „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 = .Завършване на стойността с End Sub 

Горният код винаги ще променя текста на номера на листа1 на работната книга, който съдържа този код.

Цикъл и CSng за промяна на текста в номер

Друг метод е да преминете през всяка клетка и да промените стойността на клетката на число с помощта на функцията CSng. Ето кода.

Sub ConvertTextToNumberLoop () Задайте Rng = ThisWorkbook.Sheets ("Sheet1"). Range ("A3: A" & Cells (Rows.Count, 1). End (xlUp) .Row) За всяка клетка В Rng.Cells cel.Value = CSng (cel.Value) Следваща cel End 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 | Това е друга основна функция на таблото. Това ви помага да обобщите стойностите при конкретни условия.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave