2012-08-29 14 views
5

मुझे एक्सेल के साथ कोई समस्या है, जिसमें एक संदर्भ संख्या उत्पन्न होती है। लेकिन जब मैं संदर्भ संख्या उत्पन्न करने की कोशिश करता हूं।रन-टाइम त्रुटि '1004': ऑब्जेक्ट '_Global' की विधि 'रेंज' विफल

रन-टाइम त्रुटि '1004': विधि 'सीमा' object'_Global की '

जब मैं डीबग बटन पर क्लिक करें विफल रहा है, यह कोड के रूप में नीचे से पता चलता है कि यह एक त्रुटि संदेश कह रही है :

यह कोड

Sub clearTemplate() 
    ' Clear Template Content 
    Range(inputTemplateHeader) = NO_ENTRY 
    Range(inputTemplateContent) = NO_ENTRY  - (highlighted error) 
End Sub 

Sub clearRefNo() 
    ' Clear cell G2 reference number 
    Range(cellRefNo) = NO_ENTRY 

    ' Open "Report_ref_no.xls" 
    If Not (IsFileOpen) Then Workbooks.Open filename:=ThisWorkbook.Path & "\" & FACCESS 

    ' Activate "Report_ref_no.xls" 
    Windows(FACCESS).Activate 

    ' Access column D 
    Range(cellFirstRefNo).Select 
    Selection.End(xlDown).Select 

    If refNo = Cells(ActiveCell.Row, ActiveCell.Column - 1).Value Then 
     ' Log Development Code column 
     Cells(ActiveCell.Row, ActiveCell.Column) = NO_ENTRY 

     ' Log Issuer column 
     Cells(ActiveCell.Row, ActiveCell.Column + 1).Value = NO_ENTRY 

     ' Log Date column 
     Cells(ActiveCell.Row, ActiveCell.Column + 2).Value = NO_ENTRY 
    End If 

    ' Save & Close workbook 
    ActiveWindow.Close True 
End Sub 

किसी को भी इस समस्या के साथ मेरी मदद कर सकते के 4 लाइन पर त्रुटि पर प्रकाश डाला? मुझे नहीं पता कि क्या गलत हो गया है?

+3

त्रुटि मिलने पर 'inputTemplateContent' और' NO_ENTRY' के मान क्या हैं? क्या यह 'सेट रेंज (इनपुट टेम्पलेट सामग्री) = NO_ENTRY' के साथ काम करता है? – assylias

+0

अगर किसी को भी एक ही समस्या है: यदि आप पुस्तक और शीट निर्दिष्ट श्रेणी का उपयोग करते हैं और आप इस त्रुटि के साथ समाप्त होते हैं, तो चेक करें कि पुस्तक के नाम में सफेद रिक्त स्थान नहीं हैं (शायद यह स्पष्ट है लेकिन यदि आपके पास विरासत मैक्रोज़ हैं और आपने कभी भी VBA का उपयोग नहीं किया है एक्सेल के लिए यह मुश्किल हो सकता है)। – EAmez

उत्तर

21

जब आप इस तरह के रेंज का संदर्भ देते हैं तो इसे अयोग्य संदर्भ कहा जाता है क्योंकि आप विशेष रूप से यह नहीं कहते कि सीमा किस चादर पर है। अयोग्य संदर्भों को "_Global" ऑब्जेक्ट द्वारा नियंत्रित किया जाता है जो यह निर्धारित करता है कि आप किस ऑब्जेक्ट का जिक्र कर रहे हैं और यह इस बात पर निर्भर करता है कि आपका कोड कहां है।

यदि आप एक मानक मॉड्यूल में हैं, तो अयोग्य श्रेणी एक्टिवशीट का संदर्भ लेंगी। यदि आप शीट के क्लास मॉड्यूल में हैं, तो अयोग्य श्रेणी उस शीट को संदर्भित करेगी।

इनपुट टेम्पलेट सामग्री एक चर है जिसमें एक श्रेणी का संदर्भ होता है, शायद नामित रेंज। यदि आप उस नामित सीमा की RefersTo संपत्ति को देखते हैं, तो संभवतः कोड निष्पादित होने पर एक्टिवशीट के अलावा अन्य शीट को इंगित करता है।

इसे ठीक करने का सबसे अच्छा तरीका शीट निर्दिष्ट करके अयोग्य श्रेणी संदर्भों से बचने के लिए है।

With ThisWorkbook.Worksheets("Template") 
    .Range(inputTemplateHeader).Value = NO_ENTRY 
    .Range(inputTemplateContent).Value = NO_ENTRY 
End With 

कार्यपुस्तिका और कार्यपत्रक संदर्भों को अपनी विशेष स्थिति में फिट करने के लिए समायोजित करें।

संबंधित मुद्दे