Tôi đi lang thang trên mạng đã tìm được 1 đoạn mã giải quyết lỗi out of stack và out of memory
và tôi cũng không biết chèn code này vào nơi nào trong VBA để có thể khắc phục 2 lỗi trên.
Các cao thủ vui lòng cho biết thêm chi tiết.Xin chân thành cám ơn.
Mã:
On 31 January 2004, I posted the topic "Out of stack space: Should I punt?" in the microsoft.public.vb.general.discussion newsgroup.
The code below will demonstrate the error if you comment out the Resume statements.
The Resume statements work around the error.
Option Explicit
Private Const strFormTitle As String = "Whatever"
Private Const OUT_OF_MEMORY As Long = 7
Private Const OUT_OF_STACK_SPACE As Long = 28
Private Const strOut_Of_Stack_Space As String = "(OUT_OF_STACK_SPACE)"
Private Const strOut_Of_Memory As String = "(OUT_OF_MEMORY)"
Public Sub Main()
Dim strTemp As String
Do
strTemp = Trim$(InputBox(prompt:="Number of data items?", Title:="Sample size", Default:=""))
On Error GoTo EndIt
Err.Raise OUT_OF_STACK_SPACE ' Force stack space error
MsgBox Now, , "Cannot get here"
EndIt:
If Err.Number <> 0 Then
ProcessError
Resume GoBoo
End If
GoBoo:
On Error GoTo EndItAgain ' Not sufficient to clear previous error
Err.Raise OUT_OF_STACK_SPACE ' Force stack space error after real stack space error
MsgBox Now, , "Nor here"
EndItAgain:
If Err.Number <> 0 Then
' VB allows us to get here only if Resume was used above
ProcessError
Resume GoHoo
End If
GoHoo:
MsgBox "VB allows us to get here only if Resume is used", , "Do we get here?"
Loop While Len(strTemp) = 0
MsgBox "We iz done!", , "That's all folks!"
End Sub
Private Sub ProcessError()
Dim strMessage As String
With Err
Select Case .Number
Case OUT_OF_STACK_SPACE
strMessage = strOut_Of_Stack_Space
Case OUT_OF_MEMORY
strMessage = strOut_Of_Memory
Case Else
strMessage = "Error " & .Number & ", " & .Description
MsgBox strMessage & vbCrLf & _
"If possible, processing will continue.", vbOKOnly, strFormTitle
End Select
End With
End Sub
Các cao thủ vui lòng cho biết thêm chi tiết.Xin chân thành cám ơn.