Макрос преобразования текста в число

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

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

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

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

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

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

Читайте также:  Isafesvc2 exe что это

Примечание: Вы также можете открывать редактор 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 с поддержкой макросов.

Вы здесь

Часто в программировании возникает необходимость перевести один тип в другой (по доступным типам данных в 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

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

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

Читайте также:  Dailymotion что это за программа

Существует форма для внесения данных, в которой в два поля «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 работают корректно, как показано на скриншоте далее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector