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

Использования функции преобразования текста в число в макросах Excel
На чтение
7 мин.
Просмотров
102
Дата обновления
13.02.2025
Старт:16.12.2024
Срок обучения:2
Наркология - переподготовка
Курс профессиональной переподготовки «Наркология» по всей России. ✓ Дистанционное обучение ✓ Получение диплома с бесплатной доставкой ✓ Цена 24990 руб
24 990 ₽33 990 ₽
Подробнее

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

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

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

 

форма для заполнения в excel VBA

 

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

  1. Частная подпрограмма CommandButton1_Click
  2. Dim i, b как строка
  3. я = TextBox1.Значение
  4. б = TextBox2.Значение
  5. If i
  6. Если i > b = True Then MsgBox(«Первое число больше «)
  7. Под конец

А при нажатии кнопки суммы «Количество» (CommandButton2) применяем код:

   

  1. Частная подпрограмма CommandButton2_Click
  2. Dim i, b, d как строка
  3. я = ПользовательскаяФорма1.TextBox1.Значение
  4. б = ПользовательскаяФорма1.TextBox2.Значение
  5. д = я + б
  6. TextBox3.Value = d End Sub

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

 

сравнение чисел макрос VBA

 

Сумма чисел макроса VBA

 

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

 

 

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

  1. Частная подпрограмма CommandButton1_Click
  2. Dim i, b как строка
  3. я = Val(UserForm1.TextBox1.Value)
  4. б = Val(UserForm1.TextBox2.Value)
  5. If i
  6. Если i > b = True Then MsgBox(«Первое число больше «)
  7. Под конец

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

  1. Частная подпрограмма CommandButton2_Click
  2. Dim i, b, d как строка
  3. я = Val(UserForm1.TextBox1.Value)
  4. б = Val(UserForm1.TextBox2.Value)
  5. д = я + б
  6. TextBox3.Value = d End Sub

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

 

Правильная сумма в VBA

 

0 Комментариев
Комментариев на модерации: 0
Оставьте комментарий

Курсы