从VBA文本框中删除值时阻止调试器

时间:2017-03-03 10:13:05

标签: vba excel-vba textbox excel-2013 excel

我的用户表单有几个可以由用户编辑的文本框,但是向我报告它正在调试。经过一些调查后,我发现用户正在删除文本框中的值,这导致运行时错误13.如果用户删除了值{{1,我如何停止运行时错误文本框变为servcredit

目前,文本框中包含以下2段代码。

这会将数值输入到后面的Excel工作表中。

vbnullstring

这可确保用户不输入无数字数字。

Private Sub ServCredit_Change()

Worksheets("Calculator").Range("L18") = CDec(ServCredit)

End Sub

2 个答案:

答案 0 :(得分:1)

您可以简单地测试是否有值:

Private Sub ServCredit_Change()

If Len(ServCredit.Text) <> 0 then
   Worksheets("Calculator").Range("L18").Value2 = CDec(ServCredit)
Else
   Worksheets("Calculator").Range("L18").Value2 = vbnullstring
end if
End Sub

答案 1 :(得分:0)

首先需要检查ServCredit是否为数字。 CDec无法将vbNullString强制转换为数字。

If IsNumeric(ServCredit) then
    Worksheets("Calculator").Range("L18") = CDec(ServCredit)
else
    Worksheets("Calculator").Range("L18") = 0
End If