Страница 1 из 1
Типы переменных.
Добавлено: 29 янв 2008, 15:16
kminas
Если в программе тип переменной задан As Single или As Integer, а во время выполнения программы данные, например в TextBox не введены, программа определяет тип переменной As String и выдает ошибку 13. Можно ли как-то обмануть прогу, не присваивая переменной тип Variant и не прибегая к обработчику ошибок?
Аналогично с плавающей точкой. Хотя эти типы и так называются, но у меня Single и Double определяются, когда число с запятой. Как быть с типом переменных в этом случае. Либо еще лучше, как сделать, чтобы введенные в этом случае точка превращалась в запятую
Re: Типы переменных.
Добавлено: 29 янв 2008, 16:25
Pavel55
1)
Код: Выделить всё
If Not IsNumeric(Me.TextBox1) Then
MsgBox "Введите число!", vbExclamation, "Ошибка"
End If
2)
Код: Выделить всё
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc(".") Then KeyAscii = Asc(",")
End Sub
Re: Типы переменных.
Добавлено: 30 янв 2008, 18:47
Teslenko_EA
Здравствуйте
kminas.
в дополнение к ответу Pavel55
Код: Выделить всё
Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 46
KeyAscii = 44
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End Sub
Евгений.
Re: Типы переменных.
Добавлено: 07 фев 2008, 16:57
son
" писал(а):Либо еще лучше, как сделать, чтобы введенные в этом случае точка превращалась в запятую
можно так:
str = Replace(cStr(number), ",", ".")
number = cDbl(str)
Re: Типы переменных.
Добавлено: 10 фев 2008, 14:53
kminas
Спасибо всем!
На одном из форумов мне предложили вариант, который, с небольшой поправкой хорошо выполнил задачу
If Len(txt1.Text) = 0 Then
a = 0
Else
If InStr(1, txt1.Text, ".") > 0 Then
a = Replace(txt1.Text, ".", ",", 1, 1)
Else
a = txt1.Text
End If
End If