Страницы: 1
RSS
Формат чисел в TextBox
 
Подскажите, пожалуйста, как заставить TextBox показывать числа в указанном формате?
Перепробовал разные варианты, но ничего не срабатывает. Мне нужно, чтобы число отображалось с двумя знаками после запятой, а если знаком нет, то два ноля + разряды.


Код
Private Sub TextBox2_AfterUpdate()

   If IsNumeric(TextBox2) Then UserForm.TextBox2.Value = Format(UserForm.TextBox2.Value, "#,##0,00")

End Sub

Private Sub TextBox2_Exit(ByVal cancel As MSForms.ReturnBoolean)

   TextBox2 = Format(TextBox2, "#,##0,00")

End Sub

Private Sub TextBox2_Change()

   TextBox2 = Format(TextBox2, "#,##0,00")

End Sub
 
Код
TextBox2 = Format(TextBox2, "# ##0.00")
 
Цитата
RAN написал:
TextBox2 = Format(TextBox2, "# ##0.00")

В какую процедуру вписать код??
 
В текстовом поле находится текст, а не число. Надо проверить, какой текст набрал пользователь и не выпускать из поля, если введенный текст не может быть интерпретирован как число. Можно так (в модуль формы):
Код
Option Explicit

' Проверяет, что текст в Textbox1 может быть интерпретирован как число и форматирует.
Function TestValue() As Boolean
   Dim v
   v = Replace(Replace(TextBox1.Text, " ", ""), Chr(160), "")  ' удаляем пробелы
   If IsNumeric(v) Then
      TextBox1.Text = Format(CDbl(v), "#,##0.00")
      TestValue = True
   End If
End Function

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If Not TestValue() Then
    MsgBox "Вы указали некорректное число"
    Cancel = True ' не выпускаем из поля
  End If
End Sub
Владимир
 
sokol92, благодарю за развернутое решение вопроса.
 
Успехов!
Владимир
Страницы: 1
Наверх