रन-टाइम त्रुटि 1004 Microsoft Visual Basic से संबंधित एक त्रुटि कोड है जिसे Microsoft Excel उपयोगकर्ताओं को प्रभावित करने के लिए जाना जाता है। यह त्रुटि एक्सेल 2003 और एक्सेल 2007 पर सबसे अधिक प्रचलित मानी जाती है, हालांकि कंप्यूटर के लिए माइक्रोसॉफ्ट के लोकप्रिय वर्कशीट एप्लिकेशन का कोई भी संस्करण रन-टाइम त्रुटि 1004 के खतरे से सुरक्षित नहीं है। ज्यादातर मामलों में, इस समस्या से प्रभावित उपयोगकर्ता इनमें से किसी एक को देखते हैं। रन-टाइम त्रुटि 1004 के दो भिन्न रूप। कुल मिलाकर, रन-टाइम त्रुटि 1004 के दो भिन्नरूप पढ़ें:
"रन-टाइम त्रुटि '1004':
वर्कशीट क्लास की कॉपी विधि विफल "
"रन-टाइम त्रुटि '1004':
एप्लिकेशन-परिभाषित या ऑब्जेक्ट-परिभाषित त्रुटि "
आपको दिखाई देने वाला सटीक त्रुटि संदेश कुछ मामलों में थोड़ा भिन्न भी हो सकता है, हालांकि त्रुटि कोड वही रहेगा। भले ही आप समस्या के किस संस्करण का अनुभव करें, यह लगभग हमेशा एक्सेल में एक मैक्रो चलाते समय होता है जिसे कार्यपत्रकों की प्रतिलिपि बनाने के लिए डिज़ाइन किया गया है और फिर प्रतियों को मूल कार्यपत्रक के समान कार्यपुस्तिका में रखा गया है।
सबसे खराब तकनीकी समस्याओं के विपरीत, Microsoft Excel में रन-टाइम त्रुटि 1004 का कारण ज्ञात है। रन-टाइम त्रुटि 1004 तब होती है जब आपके द्वारा चलाए जा रहे मैक्रो मूल कार्यपत्रक को एक परिभाषित नाम वाली कार्यपुस्तिका में कॉपी कर रहे होते हैं जिसे आपने मैक्रो चलाने से पहले सहेजा और बंद नहीं किया था। ऐसे मैक्रो का एक उदाहरण निम्नलिखित कोड में देखा जा सकता है:
Sub CopySheetTest()
Dim iTemp As Integer
Dim oBook As Workbook
Dim iCounter As Integer
' Create a new blank workbook:
iTemp = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Set oBook = Application.Workbooks.Add
Application.SheetsInNewWorkbook = iTemp
' Add a defined name to the workbook
' that RefersTo a range:
oBook.Names.Add Name:="tempRange", _
RefersTo:="=Sheet1!$A$1"
' Save the workbook:
oBook.SaveAs "c:\test2.xls"
' Copy the sheet in a loop. Eventually,
' you get error 1004: Copy Method of
' Worksheet class failed.
For iCounter = 1 To 275
oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)
Next
End Sub
चूंकि माइक्रोसॉफ्ट एक्सेल के संदर्भ में रन-टाइम त्रुटि 1004 का कारण ज्ञात है, जैसा कि संकल्प है। इस समस्या के समाधान के अलावा, जो इससे प्रभावित उपयोगकर्ताओं के लिए भी उपलब्ध है, वह एक समाधान है जिसका उपयोग उस स्थिति में किया जा सकता है जब समाधान काम नहीं करता है या वे समाधान को एक व्यवहार्य विकल्प नहीं पाते हैं।पी>
समाधान:
इस विशिष्ट समस्या का समाधान केवल उस मैक्रो के कोड को संपादित करना है जिसे आप समय-समय पर लक्ष्य कार्यपुस्तिका को सहेजने और बंद करने के लिए चला रहे हैं, जबकि यह कार्यपत्रकों की प्रतियां बनाता है। ऐसा करने वाले मैक्रो के लिए कोड निम्न की तर्ज पर कुछ दिखाई देगा:
Sub CopySheetTest()
Dim iTemp As Integer
Dim oBook As Workbook
Dim iCounter As Integer
' Create a new blank workbook:
iTemp = Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook = 1
Set oBook = Application.Workbooks.Add
Application.SheetsInNewWorkbook = iTemp
' Add a defined name to the workbook
' that RefersTo a range:
oBook.Names.Add Name:="tempRange", _
RefersTo:="=Sheet1!$A$1"
' Save the workbook:
oBook.SaveAs "c:\test2.xls"
' Copy the sheet in a loop. Eventually,
' you get error 1004: Copy Method of
' Worksheet class failed.
For iCounter = 1 To 275
oBook.Worksheets(1).Copy After:=oBook.Worksheets(1)
'Uncomment this code for the workaround:
'Save, close, and reopen after every 100 iterations:
If iCounter Mod 100 = 0 Then
oBook.Close SaveChanges:=True
Set oBook = Nothing
Set oBook = Application.Workbooks.Open("c:\test2.xls")
End If
Next
End Sub
नोट: जिस कार्यपुस्तिका को सहेजा जा रहा है, उसे सहेजने और बंद करने से पहले आप कितनी बार किसी कार्यपत्रक की प्रतिलिपि बना सकते हैं, यह एक मामले से दूसरे मामले में भिन्न होता है क्योंकि यह उस कार्यपत्रक के आकार पर निर्भर करता है जिसकी आप प्रतियां बना रहे हैं।पी>
समाधान:
जैसा कि पहले कहा गया है, इस विशिष्ट समस्या का समाधान भी मौजूद है। इस समस्या को हल करना मौजूदा कार्यपत्रक की प्रतिलिपि बनाने के बजाय टेम्पलेट से नई कार्यपत्रक सम्मिलित करने का एक साधारण मामला है। अगर आप इस समस्या को हल करना चाहते हैं, तो आपको ये करना होगा:
- लॉन्च करें एक्सेल ।
- नई कार्यपुस्तिका बनाएं, और हटाएं प्रत्येक कार्यपत्रक में कार्यपुस्तिका में एक के लिए सहेजें शामिल है।
- प्रारूप कार्यपुस्तिका।
- कोई भी टेक्स्ट, डेटा और/या चार्ट जो आप टेम्प्लेट में रखना चाहते हैं, डिफ़ॉल्ट रूप से उस एकमात्र वर्कशीट में जोड़ें जिसमें अब कार्यपुस्तिका है।
- यदि आप Excel 2003 या इससे पहले के संस्करण का उपयोग कर रहे हैं, तो फ़ाइल . पर क्लिक करें> इस रूप में सहेजें . यदि आप Excel 2007 या बाद के संस्करण का उपयोग कर रहे हैं, तो दूसरी ओर, Microsoft Office पर क्लिक करें बटन पर क्लिक करें और फिर इस रूप में सहेजें . पर क्लिक करें .
- फ़ाइल नाम . में : फ़ील्ड में, जो कुछ भी आप चाहते हैं कि टेम्प्लेट कहा जाए, टाइप करें।
- इस प्रकार से सेव करें: . के आगे ड्रॉपडाउन मेनू खोलें फ़ील्ड करें और एक्सेल . पर क्लिक करें टेम्पलेट (.xlt) यदि आप Excel 2003 या इससे पहले के संस्करण का उपयोग कर रहे हैं, या Excel टेम्पलेट (.xltx) यदि आप इसे चुनने के लिए Excel 2007 या बाद के संस्करण का उपयोग कर रहे हैं।
- सहेजें पर क्लिक करें .
- एक बार जब आप सफलतापूर्वक टेम्पलेट बना लेते हैं, तो आप कोड की निम्न पंक्ति का उपयोग करके इसे प्रोग्रामेटिक रूप से सम्मिलित कर सकते हैं:
Sheets.Add Type:=path मजबूत> \फ़ाइल नाम
नोट: ऊपर वर्णित कोड की पंक्ति में, पथ\फ़ाइल नाम आपके द्वारा अभी बनाए गए शीट टेम्पलेट के स्थान के लिए पूर्ण पथ (पूर्ण फ़ाइल नाम सहित) से प्रतिस्थापित करने की आवश्यकता है।