Изменение текста в номер с помощью VBA
В недавней задаче я выполнял фильтрацию через VBA в числовом столбце. Но в этом числовом столбце были числа в текстовом формате. Когда я запускал сценарий VBA, он, конечно, не работал, потому что фильтр был числовым, а столбец имел числа в виде текста. В этом случае мне нужно было вручную преобразовать текст в числа и сохранить его. Тогда макрос работал отлично.
Но я хотел преобразовать эти тексты в числа с помощью сценария VBA, и мне это удалось. Я хотел поделиться этим, как если бы кто-то хотел знать, как преобразовать текстовые значения в число с помощью VBA, они могут взглянуть на это.
===
Преобразование текста в число с помощью метода Range.NumberFormat Это первый и самый простой способ. Я предпочитаю этот метод другим методам, поскольку он напрямую преобразует выбранный диапазон Excel в числовой формат.
Итак, если у вас есть фиксированный диапазон, который вы хотите преобразовать в текст, используйте этот фрагмент VBA.
Sub ConvertTextToNumber() Range("A3:A8").NumberFormat = "General" Range("A3:A8").Value = Range("A3:A8").Value End Sub
Когда вы запускаете приведенный выше код, он преобразует текст диапазона A3: A8 в текст.
Этот код может выглядеть более элегантно, если мы напишем его так.
Sub ConvertTextToNumber() With Range("A3:A8") .NumberFormat = "General" .Value = .Value End With End Sub
Как это работает?
Что ж, это довольно просто. Сначала мы меняем числовой формат диапазона на Общий. Затем мы помещаем значение этого диапазона в тот же диапазон с помощью VBA. Это полностью удаляет форматирование текста. Просто, не правда ли?
Изменить количество форматов динамического диапазона
В приведенном выше коде мы изменили текст на число в приведенном выше коде фиксированного диапазона, но в большинстве случаев это не так. Чтобы преобразовать текст в несколько динамических диапазонов, мы можем оценить последнюю использованную ячейку или выбрать диапазон динамически.
Вот как это будет выглядеть:
Sub ConvertTextToNumber() With Range("A3:A" & Cells(Rows.Count, 1).End(xlUp).Row) .NumberFormat = "General" .Value = .Value End With
Здесь я знаю, что диапазон начинается с А3. Но я не знаю, чем это может закончиться.
Поэтому я динамически идентифицирую link: / tips-how-to-find-the-last-used-cell-in-one-column-in-microsoft-excel-2010 [last used excel row]
, в котором есть данные, используя фрагмент кода VBA Cells (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 = .Value End With End Sub
Приведенный выше код всегда будет изменять текст на номер листа1 книги, содержащей этот код.
Цикл и CSng для изменения текста на число Другой способ — перебрать каждую ячейку и изменить значение ячейки на число с помощью функции CSng. Вот код.
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) Next cel End Sub
В приведенном выше фрагменте VBA мы используем link: / vba-for-loops-with-7-examples [VBA For loop]
для перебора каждой ячейки в диапазоне и преобразования значения каждой ячейки в число с помощью link: / excel-macros-and-vba-what-is-csng-function-in-excel-vba [CSng-функция VBA]
.
Так что да, ребята, вот как вы можете преобразовывать тексты в числа в Excel с помощью VBA. Вы можете использовать эти фрагменты, чтобы подготовить свой рабочий лист, прежде чем выполнять с ними какие-либо операции с числами. Надеюсь, я достаточно объяснил. Вы можете скачать рабочий файл здесь.
`link: /wp-content-uploads-2020-01-Change-Text-to-Number-Using-VBA.xls [Изменить текст на номер с помощью VBA].
Если у вас есть какие-либо сомнения относительно этого преобразования текста в числа или любого другого запроса, связанного с Excel / VBA, спросите в разделе комментариев ниже.
Статьи по теме:
link: / formating-in-vba-format-table-в зависимости от-числовых-форматов-using-vba-in-microsoft-excel [Форматирование данных в пользовательских числовых форматах с помощью VBA в Microsoft Excel]
| Чтобы изменить числовой формат определенных столбцов в Excel, используйте этот фрагмент VBA. Он покрывает числовой формат указанного в указанный формат одним щелчком мыши.
Популярные статьи:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-вашу-продуктивность [50 комбинаций клавиш Excel для повышения вашей продуктивности]
| Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.
link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel]
| Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016]
| Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.
Функция Countif важна для подготовки вашей приборной панели.
link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]
| Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.