У меня есть программа Excel VBA, над которой я работаю, которая, кажется, работает, только когда я использую F8, чтобы пройти программу. Я могу сделать это и go от начала до конца sh в программе, и у него нет проблем. Однако, если я нажимаю F5 и запускаю программу, она взрывается, заставляя Excel закрыться и перезапуститься (сообщение об ошибке не выдается): (
Я сузил это до того, что происходит в одном конкретном модуле, но не хватает какого-либо указание на то, что это, я не могу найти, что не так.
Любая помощь очень очень ценится
Модуль, который, кажется, дает мне проблему: 1007 *
Sub gwLoadWheels(ByRef db As DAO.Database, ByRef pColl As clsParts, ByRef pCrib As clsCrib, ByRef pExcept As clsExceptions)
Dim i As Long
Dim rs As DAO.Recordset
Dim sSQL As String
Dim iSH As Worksheet
Dim cWheel As clsCribItem
Dim rPart As clsPart
Dim rExcept As clsException
On Error GoTo ErrHandler
For Each rPart In pColl
sSQL = "SQL String Removed, Verified using SQL Query in MS Access"
Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot, dbReadOnly)
If Not rs.EOF Then
rs.MoveLast
rs.MoveFirst
For i = 1 To rs.RecordCount
If pCrib.ItemExists(rs!wheel_ID) = False Then
With pCrib
.AddItem (rs!wheel_ID)
With .Item(rs!wheel_ID)
.AveragePieces = rs!Avg_Pieces
.Burn = rs!BurnQty
.Cost = rs!AvgUnitCost
.HoleDiameter = rs!Hole
.OnHand = rs!OnHand
.OnOrder = rs!OnOrder
.OrderQty = rs!OrderQty
.OutsideDiameter = rs!OD
.Radius = rs!Radius
.Spec = rs!Specification
.Treatment = rs!Treat
.Width = rs!Width
.TotalPieces = rs!Number_Per * rPart.Qty
End With
End With
Else
pCrib.Item(rs!wheel_ID).TotalPieces = pCrib.Item(rs!wheel_ID).TotalPieces + (rs!Number_Per * rPart.Qty)
End If
Next i
Else
With pExcept
.AddException (rPart.PartID)
.Exception(rPart.PartID).Qty = .Exception(rPart.PartID).Qty + rPart.Qty
End With
End If
rs.Close
Set rs = Nothing
Next rPart
GoTo SubExit
ErrHandler:
MsgBox "Error: " & Err.Number & vbCrLf & "Description:" & vbCrLf & Err.Description, vbCritical, "Error Info"
i = i
SubExit:
End Sub