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 逻辑。