Excel vba преобразовать число в текст

Excel vba преобразовать число в текст

На этом шаге мы перечислим функции преобразования форматов .

Преобразование строки в число и обратно осуществляют следующими функциями.

Таблица 1. Преобразование строки в число и обратно
Функция Назначение
Val ( строка ) Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа
Str ( число ) Возвращает значение типа Variant (String) , являющееся строковым представлением числа

В качестве допустимого десятичного разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя (например, запятой) для преобразования чисел в строки следует использовать функцию CStr , указанную в конце этого шага.

Чтобы представить числовое значение как дату, время, денежное значение или в специальном формате, следует использовать функцию Format .

Функция Format возвращает значение типа Variant (String) , содержащее выражение, отформатированное согласно инструкциям, заданным в описании формата. Синтаксис:

При построении пользовательского числового формата возможно использование следующих символов.

Таблица 2. Символы, используемые в числовом формате
Символ Назначение
Резервирует позицию цифрового разряда. Отображает цифру или нуль. Если у числа, представленного аргументом, есть какая-нибудь цифра в той позиции разряда, где в строке формата находится 0, функция отображает эту цифру аргумента, если нет — в этой позиции отображается нуль
# Резервирует позицию цифрового разряда. Отображает цифру или ничего не отображает. Если у числа, представленного аргументом, есть какая-нибудь цифра в той позиции разряда, где в строке формата находится #, функция отображает эту цифру аргумента, если нет — в исходной позиции не отображается ничего. Действие данного символа аналогично действию 0, за исключением того, что лидирующие нули не отображаются
. ( точка ) Резервирует позицию десятичного разделителя. Указание точки в строке формата определяет, сколько разрядов необходимо отображать слева и справа от десятичной точки
% Резервирует процентное отображение числа
, Разделитель разряда сотен от тысяч
: Разделитель часов, минут и секунд в категории форматов Время (Time)
/ Разделитель дня, месяца и года в категории форматов Дата (Date)
E+, E-, e+, e- Разделитель мантиссы и порядка в экспоненциальном формате

Кроме функций Val и Str в VBA имеются следующие функции преобразования типов выражений из данного в указанный.

Таблица 3. Функции преобразования форматов
Функция Тип, в который преобразуется выражение
CBool ( Выражение ) Boolean
CByte ( Выражение ) Byte
CCur ( Выражение ) Currency
CDate ( Выражение ) Date
СDbl ( Выражение ) Double
CDec ( Выражение ) Decimal
CInt ( Выражение ) Integer
CLng ( Выражение ) Long
CSng ( Выражение ) Single
CVar ( Выражение ) Variant
CStr ( Выражение ) String

На следующем шаге мы рассмотрим функции обработки строк .

Источник: it.kgsu.ru

Функция VAL в VBA Excel или как преобразовать TextBox в число (цифру).

Иногда при написании макросов необходимо производить вычисления или сравнения числовых значений, которые вносятся в поля «TextBox». Существует небольшая проблемка при работе с этими данными – информация из поля «TextBox» воспринимается программой как текстовая и, соответственно, в расчетах не может использоваться.

Для решения денной проблемы в VBA можно использовать функцию VAL(), которая переводит в численный формат данных. VAL — это функция конвертирующая текстовые значения аргумента в целые числовые или числовые значения с плавающей запятой. Следует отметить что функция Val при преобразовании десятичных дробей в число может распознать только точку, то есть, если вы напишете десятичную дробь через запятую, то функция распознает только первую (целую)часть дроби, остальной текст после запятой функция не воспримет. Например: VAL(«10,8»)= 10

Рассмотрим пример кода с данной функцией (VAL) и без нее:

Существует форма для внесения данных, в которой в два поля «TextBox1» и «TextBox1» вносятся числа, которые сравниваются нажатием кнопки «Сравнить»(CommandButton1) и суммируются нажатием кнопки «Сумма» (CommandButton2).

Если на нажатие кнопки сравнения «Сравнить»(CommandButton1) использовать код:

  1. Private Sub CommandButton1_Click()
  2. Dim i, b As String
  3. i = TextBox1.Value
  4. b = TextBox2.Value
  5. If i
  6. If i > b = True Then MsgBox («Первое число больше «)
  7. End Sub

А на нажатие кнопки суммы «Сумма» (CommandButton2) применить код:

  1. Private Sub CommandButton2_Click()
  2. Dim i, b, d As String
  3. i = UserForm1.TextBox1.Value
  4. b = UserForm1.TextBox2.Value
  5. d = i + b
  6. TextBox3.Value = d End Sub

Сравнение значений будет выполняться верно, но расчеты суммы будут неверными:

Применим функцию VAL () в этих кодах:

1-й код (Сравнение двух чисел)

  1. Private Sub CommandButton1_Click()
  2. Dim i, b As String
  3. i = Val(UserForm1.TextBox1.Value)
  4. b = Val(UserForm1.TextBox2.Value)
  5. If i
  6. If i > b = True Then MsgBox («Первое число больше «)
  7. End Sub

2-й код (Сумма двух чисел)

  1. Private Sub CommandButton2_Click()
  2. Dim i, b, d As String
  3. i = Val(UserForm1.TextBox1.Value)
  4. b = Val(UserForm1.TextBox2.Value)
  5. d = i + b
  6. TextBox3.Value = d End Sub

С таким кодом кнопки формы UserForm1 работают корректно, как показано на скриншоте далее.

Источник: ruexcel.ru

Канал в Telegram

Вы здесь

Функции преобразования типов данных в VBA

Часто в программировании возникает необходимость перевести один тип в другой (по доступным типам данных в VB читаем в этой статье). Например, число в строку или строку в дату. Для перевода (преобразования) типов в VBA есть множество функций позволяющих это сделать. Но есть один момент, преобразовать возможно только тот тип или значение, которое подходит по формату нового типа. К примеру, если преобразовать строку “356” в целый тип, то на выходе мы получим число, но если в этой строке будет находиться символ, не относящийся к числу “356р”, то преобразование завершится ошибкой несовпадения типов (Type mismatch).

В таблице ниже приведен полный список функций преобразования и тип, в который происходит преобразование:

Функция

Возвращает тип

Действие

CBool

Преобразует значение в булевый тип

CByte

Преобразует значение в тип Byte

CCur

Преобразует значение в тип Currency

CDate

Преобразует значение в Дату и Время

CDbl

Преобразует значение в тип Double

CDec

Преобразует значение в подтип Decimal типа Variant

CInt

Преобразует значение в целый тип

CLng

Преобразует значение в длинное целое

CSng

Преобразует значение в тип Single

CStr

Преобразует значение в строку

CVar

Преобразует значение в тип Variant

Использование функций преобразования типов

Работать с функциями преобразования легко. К примеру, необходимо преобразовать число 4568 в строку:

Dim OutStr as String
OutStr = CStr(4568)

Преобразование строки или числа в булевый тип

Dim OutBool as Boolean
‘Функция вернет значение True
OutBool = CBool(1)
OutBool = CBool (“TRUE”)

Преобразование строки или числа в дату и время

Dim OutDate as Date
OutDate = CDate(“25/06/03 23:35”)
OutDate = CDate(“25.06.03”)
OutDate = CDate(“37797,9826388889”)

Примечание: Функции преобразования можно использовать непосредственно в выражении избегая создания лишних переменных. Например: x=y+CInt(“456”)+z

Источник: www.programm-school.ru

Преобразование чисел в слова

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Нет функции по умолчанию, отображающий чисел в виде английских слов на листе Excel, но вы можете добавить эту возможность путем вставки следующий код функции SpellNumber в модуле VBA (Visual Basic for Applications). Эта функция позволяет преобразовывать доллара и кратное сумм для слов с помощью формулы, 22,50 читается как двадцати двух центы и т. Это может быть очень полезным при использовании Excel как шаблон для печати проверки.

Если вы хотите преобразования числовых значений в текстовом формате без отображения их как слова, используйте функции текст .

Примечание: Microsoft примеры программирования только для иллюстрации и без гарантий выраженное или подразумевается. Включает в себя, но не ограничивается гарантий окупаемость или Фитнес для определенной цели. В этой статье предполагается, что вы знакомы с языком VBA программирования и с помощью средств, которые используются для создания и отладки процедур. Сотрудники службы поддержки Майкрософт могут пояснить конкретной процедуры. Однако они не изменять эти примеры для обеспечения функциональных возможностей или создания процедур в соответствии с конкретными требованиями.

Создание функции SpellNumber для преобразования чисел в слова

Используйте сочетание клавиш Alt + F11 , чтобы открыть редактор Visual Basic (VBE).

Примечание: Вы также можете открывать редактор Visual Basic, добавив вкладку “Разработчик” на ленту.

На вкладке Insert (Вставка) нажмите кнопку Module (Модуль).

Скопируйте приведенный ниже код.

Примечание: Известные как Пользовательской функции (UDF)этот код Автоматизация задач для преобразования чисел в разных частях листа.

Вставьте строки кода в поле Module1 (Code) (Модуль 1 — код).

Нажмите клавиши Alt + Q , чтобы вернуться в Microsoft Excel. Функция SpellNumber теперь готов к использованию.

Примечание: Эта функция работает только для текущей книги. Для использования этой функции в другой книге, необходимо повторить шаги, скопируйте и вставьте код в этой книге.

Использование функции SpellNumber в отдельных ячейках

Введите формулу = SpellNumber ( A1) в ячейку, которую вы хотите отобразить письменного номер, где A1 — ячейку, содержащую число вы хотите преобразовать. Можно также вручную ввести значение как = SpellNumber(22.50).

Нажмите клавишу Ввод, чтобы подтвердить формулу.

Сохранение книги с функцией SpellNumber

Excel не может сохранить книгу с помощью функции макросов в формате стандартной книги без поддержки макросов (XLSX). Если щелкнуть файл > Сохранить. Откроется диалоговое окно проекта VB. Нажмите кнопку Нет.

Можно сохранить файл в формате Книга Excel с поддержкой макросов (xlsm), чтобы сохранить файл в текущем формате.

На вкладке Файл выберите команду Сохранить как.

Щелкните раскрывающееся меню Тип файла и выберите Книгу Excel с поддержкой макросов.

Источник: support.office.com

Как преобразовать число в текст и обратно?

В ячейках любой рабочей книги Excel по умолчанию установлен общий формат, который используется для отображения как текстовых, так и числовых значений общего типа. Если в ячейку с общим форматом внести число, состоящее из двенадцати знаков и более, например, номер расчетного счета в банке, то числовое значение будет автоматически приведено в экспоненциальный вид. Зачастую различные инвентарные номера и банковские коды начинаются с нулей, которые исчезают при попытке ввести их в ячейках общего формата. Рассмотрим методы, с помощью которых можно трансформировать число в текст и при необходимости проделать обратное преобразование.

Форматирование ячеек

Если в ячейки рабочего листа планируется вносить числа, отформатированные как текст, то достаточно просто изменить формат ячеек с общего на текстовый. Все значения, внесенные в ячейки текстового формата, представляют собой текстовые значения даже если полностью состоят из цифр. Если же числа уже внесены в ячейки, то простая смена формата уже не поможет, числа останутся числами и в текст преобразованы не будут. Чтобы числовые значения окончательно трансформировались в текст, нужно в каждой ячейке сделать двойной клик левой кнопкой мыши либо нажать клавишу «F2», что в принципе можно сделать, если значений не много. Также для преобразования небольшого количества значений достаточно перед числом поставить знак апострофа.

Использование стандартных функций

Для преобразования числа в тест существует стандартная функция Excel, находится она в категории «Текстовые» и называется «ТЕКСТ». Функция использует два аргумента, само числовое значение и формат, в котором должно отображаться число, отформатированное как текст, например, формат «0» покажет только целую часть числа, а формат «0,00» покажет число с двумя знаками после запятой. При помощи функции «ТЕКСТ» можно получить число в виде текста в ячейках не только общего формата, но и числового, денежного и финансового.

В этой же категории есть функция «ЗНАЧЕН», позволяющая осуществить обратное преобразование и превратить текст обратно в число.

Надстройка для быстрого преобразования

С установленной надстройкой (это такая программа, написанная языке программирования, встроенном в приложения Office) манипуляции по преобразованию чисел в текст и обратно текста в числа можно производить очень быстро и без лишних движений. Надстройка устанавливается в Excel один раз и остается активной и готовой к использованию всегда, когда на компьютере запущен Excel. Кнопка вызова диалогового окна располагается на стандартной вкладке «Надстройки». Для быстрого преобразования чисел в текст и текста в числа достаточно вызвать диалоговое окно, выделить диапазон ячеек, выбрать нужную опцию и нажать кнопку “Пуск”.

Видео по работе с надстройкой:

Источник: macros-vba.ru

Преобразование чисел в слова

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Нет функции по умолчанию, отображающий чисел в виде английских слов на листе Excel, но вы можете добавить эту возможность путем вставки следующий код функции SpellNumber в модуле VBA (Visual Basic for Applications). Эта функция позволяет преобразовывать доллара и кратное сумм для слов с помощью формулы, 22,50 читается как двадцати двух центы и т. Это может быть очень полезным при использовании Excel как шаблон для печати проверки.

Если вы хотите преобразования числовых значений в текстовом формате без отображения их как слова, используйте функции текст .

Примечание: Microsoft примеры программирования только для иллюстрации и без гарантий выраженное или подразумевается. Включает в себя, но не ограничивается гарантий окупаемость или Фитнес для определенной цели. В этой статье предполагается, что вы знакомы с языком VBA программирования и с помощью средств, которые используются для создания и отладки процедур. Сотрудники службы поддержки Майкрософт могут пояснить конкретной процедуры. Однако они не изменять эти примеры для обеспечения функциональных возможностей или создания процедур в соответствии с конкретными требованиями.

Создание функции SpellNumber для преобразования чисел в слова

Используйте сочетание клавиш Alt + F11 , чтобы открыть редактор Visual Basic (VBE).

Примечание: Вы также можете открывать редактор Visual Basic, добавив вкладку “Разработчик” на ленту.

На вкладке Insert (Вставка) нажмите кнопку Module (Модуль).

Скопируйте приведенный ниже код.

Примечание: Известные как Пользовательской функции (UDF)этот код Автоматизация задач для преобразования чисел в разных частях листа.

Вставьте строки кода в поле Module1 (Code) (Модуль 1 — код).

Нажмите клавиши Alt + Q , чтобы вернуться в Microsoft Excel. Функция SpellNumber теперь готов к использованию.

Примечание: Эта функция работает только для текущей книги. Для использования этой функции в другой книге, необходимо повторить шаги, скопируйте и вставьте код в этой книге.

Использование функции SpellNumber в отдельных ячейках

Введите формулу = SpellNumber ( A1) в ячейку, которую вы хотите отобразить письменного номер, где A1 — ячейку, содержащую число вы хотите преобразовать. Можно также вручную ввести значение как = SpellNumber(22.50).

Нажмите клавишу Ввод, чтобы подтвердить формулу.

Сохранение книги с функцией SpellNumber

Excel не может сохранить книгу с помощью функции макросов в формате стандартной книги без поддержки макросов (XLSX). Если щелкнуть файл > Сохранить. Откроется диалоговое окно проекта VB. Нажмите кнопку Нет.

Можно сохранить файл в формате Книга Excel с поддержкой макросов (xlsm), чтобы сохранить файл в текущем формате.

На вкладке Файл выберите команду Сохранить как.

Щелкните раскрывающееся меню Тип файла и выберите Книгу Excel с поддержкой макросов.

Источник: support.office.com