كيفية إصلاح خطأ وقت التشغيل 1004 في إكسل

خطأ وقت التشغيل 1004 هو رمز خطأ يتعلق بـ Microsoft Visual Basic المعروف أنه يؤثر على مستخدمي Microsoft Excel. يُعرف أن الخطأ هو الأكثر شيوعًا في Excel 2003 و Excel 2007 ، على الرغم من عدم وجود أي إصدار من تطبيقات ورقة العمل الشائعة من Microsoft لأجهزة الكمبيوتر في مأمن من خطر خطأ وقت التشغيل 1004. في معظم الحالات ، يرى المستخدمون المتأثرون بهذه المشكلة أحد صيغتين مختلفتين لخطأ وقت التشغيل 1004. في مجملهما ، تقرأ صيغتا خطأ وقت التشغيل 1004:

" خطأ وقت التشغيل" 1004 ":

فشل نسخ أسلوب ورقة العمل "

" خطأ وقت التشغيل" 1004 ":

خطأ معرف التطبيق أو كائن المعرفة "

قد تختلف رسالة الخطأ التي تراها أيضًا بشكل طفيف ، في حالات قليلة ، على الرغم من أن رمز الخطأ سيظل كما هو. بغض النظر عن إصدار المشكلة الذي تواجهه ، ومع ذلك ، فإنه يحدث دائمًا تقريبًا أثناء تشغيل ماكرو في Excel مصمم لنسخ أوراق العمل ثم وضع النسخ في نفس المصنف مثل ورقة العمل الأصلية.

بخلاف أسوأ المشكلات التقنية الموجودة هناك ، يُعرف سبب خطأ وقت التشغيل 1004 في Microsoft Excel. يحدث خطأ وقت التشغيل 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 في سياق Microsoft Excel ، كما هو معروف الدقة. بالإضافة إلى حل لهذه المشكلة ، فإن ما هو متاح أيضًا للمستخدمين المتأثرين به هو الحل الذي يمكن استخدامه في حالة عدم نجاح الحل أو أنهم لا يجدون أن الحل هو خيار قابل للتطبيق.

الحل:

يكمن حل هذه المشكلة بالتحديد في تحرير رمز الماكرو الذي تقوم بتشغيله بشكل دوري لحفظه وإغلاق المصنف الهدف أثناء عمل نسخ من ورقة (أوراق) العمل. ستبدو التعليمات البرمجية لماكرو يقوم بذلك شيئًا على غرار ما يلي:

 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 

ملاحظة: يختلف عدد المرات التي يمكنك فيها نسخ ورقة عمل قبل أن تحتاج إلى حفظ وإغلاق المصنف الذي يتم حفظ النسخ فيه من حالة إلى أخرى حيث يعتمد ذلك على حجم ورقة العمل التي تقوم بنسخ منها.

الحل:

كما ذكر من قبل ، يوجد أيضًا حل بديل لهذه المشكلة المحددة. حل هذه المشكلة هو مسألة بسيطة لإدراج ورقة عمل جديدة من قالب بدلاً من إنشاء نسخة من ورقة عمل موجودة. إذا كنت ترغب في التغلب على هذه المشكلة ، فإليك ما عليك القيام به:

  1. قم بتشغيل Excel .
  2. قم بإنشاء مصنف جديد وحذف كل ورقة عمل واحدة تحتوي على المصنف حفظ لأحد.

  3. تنسيق المصنف.
  4. أضف أي نص و / أو بيانات و / أو مخططات ترغب في إدراجها في القالب افتراضيًا في ورقة العمل الوحيدة التي يحتوي عليها المصنف الآن.
  5. إذا كنت تستخدم Excel 2003 أو إصدار سابق ، فانقر فوق ملف > حفظ باسم . إذا كنت تستخدم Excel 2007 أو إصدار أحدث ، من ناحية أخرى ، انقر فوق زر Microsoft Office ثم انقر فوق " حفظ باسم" .

  6. في الحقل اسم الملف : ، اكتب ما تريد أن يسمى القالب.
  7. افتح القائمة المنسدلة بجوار الحقل Save as type: وانقر فوق Excel Template (.xlt) إذا كنت تستخدم Excel 2003 أو إصدار سابق ، أو Excel Template (.xltx) إذا كنت تستخدم Excel 2007 أو إصدارًا أحدث لتحديده.

  8. انقر فوق حفظ .

  9. بمجرد إنشاء القالب بنجاح ، يمكنك إدراجه برمجيًا باستخدام سطر التعليمات البرمجية التالي:

    Sheets.Add Type: = path \ filename

ملاحظة: في سطر التعليمات البرمجية الموضح أعلاه ، يجب استبدال المسار \ اسم الملف بالمسار الكامل (بما في ذلك اسم الملف الكامل) لموقع قالب الورقة الذي قمت بإنشائه للتو.

مقالات مثيرة للاهتمام