请教当文本框为空时能继续运行计算的VB语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 12:10:56
如何在VB中TXT文本框为空时也照常计算。就是不用填写所有的TXT文本框也让计算进行。默认文本框为空值。
当我点击执行代码时提示这样的错误decBMJG1 = (decKKJ1 + decYF1 * 0.93) * 7000 / decRZ1值对于 Decimal 太大或太小。确保不会被零除
Dim decRZ1 As Decimal
Dim decKKJ1 As Decimal是这样给类型的。如何解决这个错误
容错语句的格式是什么。我是VB菜鸟初学的。
就是因为默认值是零我拿来除了。
If decRZ1 <> 0 Then
decBMJG1 = (decKKJ1 + decYF1 * 0.93) * 7000 / decRZ1
End If
这个方法不行我还有RZ2,RZ3,RZ4。。。RZ9这么多。
Dim decRZ1 As Decimal ?
Dim decKKJ1 As Decimal ?
应该是
Dim decRZ1 As Single
Dim decKKJ1 As Single
这样改了也不行运算不出。
是这样的我有36个文本框,每行有4个框,竖着有9排。现在是每个框都要填入数据才能计算。我想只填能够满足计算的几个框,而不要全部填完让它少计算几排。

在计算前加个判断:

Dim decRZ1 As Decimal
Dim decKKJ1 As Decimal
Dim decBMJG1 As Decimal
Dim decYF1 As Decimal

If decRZ1 <> 0 Then
decBMJG1 = (decKKJ1 + decYF1 * 0.93) * 7000 / decRZ1
End If

大概清楚了你的想法,还是有办法解决:
可以先将所有的文本框的名称设置成一样的(例如:Text1,其Index属性从0到35),然后将Index为1到35的文本框的Enabled=False,再输入下列代码:
Private Sub Text1_Change(Index As Integer)
If Index < 35 Then Text1(Index + 1).Enabled = IIf(Text1(Index) = "", False, True)
End Sub
' 假设Command1是计算按钮
Private Sub Command1_Click()
Dim i As Integer
For i = 0 To 35
If Text1(i).Enabled Then
' 在这里添加计算处理的语句
End If
Next
End Sub
这样就可以避免读到空的文本框啦

Dim decRZ1 As Decimal ?
Dim decKKJ1 As Decimal ?
应该是
Dim decRZ1 As Single
Dim decKKJ1 As Single

至于容错语句,简单点,你可以用
On Error Resume Next
放在单击代码的第一行

什么意思?用val(text1.text