VBA 溢出错误 6 不是真的
VBA Overflow Error 6 Not really
=Count([qty_rec])/Count([sub]) 是文本框的控件源。控件的格式为 'percentage'。我也试过 'standard',修复并留空。我怀疑评价是拿苹果和橙子比较。
Private Sub Form_Current()
If Me.txt_percent_received = 0.5 Then
Me.cbtn_shortage.Visible = False
Else
End If
End Sub
我在 If 处设置了断点并转到立即并键入 ?Me.txt_percent_received
它说 0.5
为什么系统认为这个数字太大了?
为什么我单步执行代码时它会起作用?
已更新
Dim intTemp As Integer
intTemp = Me.txt_percent_received
If intTemp = 0.5 Then
Me.cbtn_shortage.Visible = False
Else
End If
现在错误在 intTemp = Me.txt_percent_received
qty_rec 和 sub 用于总计填充字段。
我已经复现了效果,我觉得这里发生的事情是:
计算控件在表单加载完成后进行计算。如果删除事件代码并打开表单,您会注意到 txt_percent_received
的值显示稍有延迟。
您甚至可能会注意到,一开始它显示 #Number!
,然后计算该值。
但是表单事件发生在这之前,所以你得到的是 0/0
的除法,这会得到运行时错误 6 "Overflow"。
1/0
会得到错误 11 "Division by zero".
您需要一种不同的方法来计算 txt_percent_received
,或实现您的 cbtn_shortage
逻辑。
=Count([qty_rec])/Count([sub]) 是文本框的控件源。控件的格式为 'percentage'。我也试过 'standard',修复并留空。我怀疑评价是拿苹果和橙子比较。
Private Sub Form_Current()
If Me.txt_percent_received = 0.5 Then
Me.cbtn_shortage.Visible = False
Else
End If
End Sub
我在 If 处设置了断点并转到立即并键入 ?Me.txt_percent_received
它说 0.5
为什么系统认为这个数字太大了?
为什么我单步执行代码时它会起作用?
已更新
Dim intTemp As Integer
intTemp = Me.txt_percent_received
If intTemp = 0.5 Then
Me.cbtn_shortage.Visible = False
Else
End If
现在错误在 intTemp = Me.txt_percent_received
qty_rec 和 sub 用于总计填充字段。
我已经复现了效果,我觉得这里发生的事情是:
计算控件在表单加载完成后进行计算。如果删除事件代码并打开表单,您会注意到 txt_percent_received
的值显示稍有延迟。
您甚至可能会注意到,一开始它显示 #Number!
,然后计算该值。
但是表单事件发生在这之前,所以你得到的是 0/0
的除法,这会得到运行时错误 6 "Overflow"。
1/0
会得到错误 11 "Division by zero".
您需要一种不同的方法来计算 txt_percent_received
,或实现您的 cbtn_shortage
逻辑。