【发布时间】:2016-04-25 09:54:42
【问题描述】:
我在 Excel VBA 中编写了一个应用程序,当它使用此功能时,它有时并且仅有时会停止,打开编辑器并突出显示“end Function”之前的最后一行
Option Explicit
Function Get_Special(i_Row, c_Total, v_code As Variant) As Currency
Dim c_money As Currency
Dim s_Code As String
Dim i_Ctr As Integer
c_money = 0
If Not IsArrayInitialized(v_code) Then
Get_Special = c_money + c_Total
Exit Function
End If
For i_Ctr = LBound(v_code) To UBound(v_code)
Select Case v_code(i_Ctr)
Case 1 To 10
Case 11
If c_Total = 0 Then c_money = Minimum_Charge(i_Row)
Case 12
c_money = c_money + Plug_Fee(i_Row, Range(rngName(RNM.PLUG)).Column)
Case Else
End Select
Next i_Ctr
'VBA editor opens here, highlighted. No error message is given pressing F5 causes it to finish with no problem.
Get_Special = c_money
End Function
我很茫然
解决以下问题:
IsArrayInitialized 函数具有“On Error resume next”错误处理,然后检查错误编号是否为零,如果不是,则该函数返回 false。
错误是间歇性的。我运行代码 70 次,每次输入不同的数据,但无法再次重现错误。
我仔细检查了,没有设置断点。
【问题讨论】:
-
Case 1 To 10你一无所有? -
什么都没有,完全没有错误,编辑器只是弹出,没有消息,Get_Special = c_money 行突出显示。而且它不会一直这样做
-
案例 1 到 10 将来可能会有一些东西,而且它最初是有的。最终用户收到错误,我能够重新创建一次,但只能重新创建一次。
-
@findwindow 是的,你可以有空箱子,它什么都不做。
-
调试 -> 清除所有调试点。调试 -> 编译。然后保存文件。有时存在幻像调试断点。