Excel vba преобразовать число в текст
Excel vba преобразовать число в текст
На этом шаге мы перечислим функции преобразования форматов .
Преобразование строки в число и обратно осуществляют следующими функциями.
Функция | Назначение |
---|---|
Val ( строка ) | Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа |
Str ( число ) | Возвращает значение типа Variant (String) , являющееся строковым представлением числа |
В качестве допустимого десятичного разделителя функция Str воспринимает только точку. При наличии другого десятичного разделителя (например, запятой) для преобразования чисел в строки следует использовать функцию CStr , указанную в конце этого шага.
Чтобы представить числовое значение как дату, время, денежное значение или в специальном формате, следует использовать функцию Format .
Функция Format возвращает значение типа Variant (String) , содержащее выражение, отформатированное согласно инструкциям, заданным в описании формата. Синтаксис:
При построении пользовательского числового формата возможно использование следующих символов.
Символ | Назначение |
---|---|
Резервирует позицию цифрового разряда. Отображает цифру или нуль. Если у числа, представленного аргументом, есть какая-нибудь цифра в той позиции разряда, где в строке формата находится 0, функция отображает эту цифру аргумента, если нет — в этой позиции отображается нуль | |
# | Резервирует позицию цифрового разряда. Отображает цифру или ничего не отображает. Если у числа, представленного аргументом, есть какая-нибудь цифра в той позиции разряда, где в строке формата находится #, функция отображает эту цифру аргумента, если нет — в исходной позиции не отображается ничего. Действие данного символа аналогично действию 0, за исключением того, что лидирующие нули не отображаются |
. ( точка ) | Резервирует позицию десятичного разделителя. Указание точки в строке формата определяет, сколько разрядов необходимо отображать слева и справа от десятичной точки |
% | Резервирует процентное отображение числа |
, | Разделитель разряда сотен от тысяч |
: | Разделитель часов, минут и секунд в категории форматов Время (Time) |
/ | Разделитель дня, месяца и года в категории форматов Дата (Date) |
E+, E-, e+, e- | Разделитель мантиссы и порядка в экспоненциальном формате |
Кроме функций Val и Str в VBA имеются следующие функции преобразования типов выражений из данного в указанный.
Функция | Тип, в который преобразуется выражение |
---|---|
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) использовать код:
- Private Sub CommandButton1_Click()
- Dim i, b As String
- i = TextBox1.Value
- b = TextBox2.Value
- If i
- If i > b = True Then MsgBox («Первое число больше «)
- End Sub
А на нажатие кнопки суммы «Сумма» (CommandButton2) применить код:
- Private Sub CommandButton2_Click()
- Dim i, b, d As String
- i = UserForm1.TextBox1.Value
- b = UserForm1.TextBox2.Value
- d = i + b
- TextBox3.Value = d End Sub
Сравнение значений будет выполняться верно, но расчеты суммы будут неверными:
Применим функцию VAL () в этих кодах:
1-й код (Сравнение двух чисел)
- Private Sub CommandButton1_Click()
- Dim i, b As String
- i = Val(UserForm1.TextBox1.Value)
- b = Val(UserForm1.TextBox2.Value)
- If i
- If i > b = True Then MsgBox («Первое число больше «)
- End Sub
2-й код (Сумма двух чисел)
- Private Sub CommandButton2_Click()
- Dim i, b, d As String
- i = Val(UserForm1.TextBox1.Value)
- b = Val(UserForm1.TextBox2.Value)
- d = i + b
- 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