Кому интересно, я решил задачу с появлением ошибки процедурой обработки ошибки. Может быть, у
меня получилось не совсем корректно это сделать, но это работает! Может быть, у кого-нибудь
есть еще мысли на эту тему?! Спасибо всем, кто отозвался. Советы мне помогли!
Теперь код имеет такой вид:
- Код: Выделить всё
Private Sub CommandButton4_Click()
' Ввод данных в текстовые поля Осталось и/или Долг
If txt3.Value = "" And txt4.Value = "" Then
MsgBox "Введи хоть что-нибудь!", vbExclamation, "ОБЯЗАТЕЛЬНО!"
Exit Sub
End If
On Error GoTo Сообщение
Range("D5").Value = TransD(txt3.Value)
Range("D5").NumberFormat = "#,##0.00 [$грн.-422]"
Range("D8").Value = TransD(txt4.Value)
Range("D8").NumberFormat = "#,##0.00 [$грн.-422]"
txt3.SetFocus
Exit Sub
Сообщение:
MsgBox "Данные внесены частично!", vbExclamation, "К СВЕДЕНИЮ!"
Resume Next
End Sub
'Данная функция решает проблему запятой
Private Function TransD(txtS As String)
Dim A As String * 6
Dim X As Double
Dim F As Integer
A = txtS
F = InStr(A, ".") 'Поиск символа "." в строковой переменной А
If F <> 0 Then ' Если точка найдена то преобразование выполняется функцией Val()
X = Val(A)
Else ' Иначе преобразование выполняется функцией CDbl()
X = CDbl(A)
End If
TransD = X
End Function