मैं थोड़ी देर के लिए एक्सेल में वीबीए का उपयोग कर रहा हूं, और मैं अपनी सभी प्रक्रियाओं के लिए एक कस्टम त्रुटि हैंडलर का उपयोग करता हूं। मुझे पहली बार, Err.Raise
(स्थिति Select Case
ब्लॉक में स्थिति के साथ निपटने के लिए) की आवश्यकता होने की स्थिति में, और मैं यह नहीं समझ सकता कि कस्टम त्रुटि हैंडलर में त्रुटि को कैसे पास किया जाए। उठाए गए त्रुटि को कस्टम हैंडलर में पास करने के बजाय, वीबीए अपने स्वयं के बदसूरत और काफी बेकार त्रुटि संवाद को पॉप अप करता है। अगर कोई मुझे इस के आसपास जाने का रास्ता बता सकता है तो मैं बहुत सराहना करता हूं।मैं वीबीए में कस्टम त्रुटि हैंडलर में उठाए गए त्रुटि को कैसे पास करूं?
नीचे कोड का एक सामान्य संस्करण है जिसका उपयोग मैं कर रहा हूं (निष्पादन/परिवर्तनीय नाम निर्दोषों की रक्षा के लिए बदल दिए गए हैं)। gErrorHandler
ऑब्जेक्ट एक वैश्विक स्तर पर आयाम वर्ग मॉड्यूल चर है जो किसी भी और सभी प्रक्रियाओं से त्रुटियों को संभालता है।
Public Function MyFunction(dblInputParameter As Double) As Double
On Error GoTo Err_MyFunction
Dim dblResult as Double
Select Case dblInputParameter
...Several case statements go here...
Case Else
Err.Raise vbObjectError + 1000, "MyProjectName.MyObjectName", "Error Description"
End Select
MyFunction = dblResult
Exit_MyFunction:
Exit Function
Err_MyFunction:
gErrorHandler.DisplayError Err.Number, Err.Description, Erl, csModule, "basMyModuleName", "MyFunction"
Resume Exit_MyFunction
End Function
और यहाँ त्रुटि संवाद है मैं कस्टम हैंडलर के लिए पारित त्रुटि होने की बजाय:
मेरे लिए काम करता है। हो सकता है कि आपके पास टूल्स >> विकल्प >> सामान्य टैब –
के तहत वीबीई में सेट की गई सभी त्रुटियों को तोड़ दें "यही वह था। धन्यवाद टिम। – Lokerim