В недавней задаче я выполнял фильтрацию через VBA в числовом столбце. Но в этом числовом столбце были числа в текстовом формате. Когда я запускал сценарий VBA, он, конечно, не работал, потому что фильтр был числовым, а столбец имел числа в виде текста. В этом случае мне нужно было вручную преобразовать текст в числа и сохранить его. Тогда макрос работал отлично.

Но я хотел преобразовать эти тексты в числа с помощью сценария VBA, и мне это удалось. Я хотел поделиться этим, как если бы кто-то хотел знать, как преобразовать текстовые значения в число с помощью VBA, они могут взглянуть на это.

===

image

Преобразование текста в число с помощью метода 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] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.