الرئيسية
» WINDOWS
»
نسخ صيغ Excel إلى ورقة أخرى باستخدام VBA
نسخ صيغ Excel إلى ورقة أخرى باستخدام VBA
لنسخ الصيغ من ورقة عمل Excel إلى أخرى باستخدام VBA، قم بتعيين نطاق المصدر FormulaR1C1إلى نطاق وجهة بنفس الحجم. ينقل هذا نمط الصيغة دون نسخ تنسيق الخلايا، ويتم تعديل المراجع النسبية تلقائيًا لخلايا الوجهة. يستخدم الماكرو أدناه أسماء أوراق العمل، لذا فهو لا يعتمد على الورقة النشطة.
يستخدم مثال ورقة العمل المصدر =A2*B2 في الخلية C2.
قبل أن تبدأ
استخدم إصدار سطح المكتب من Excel؛ إذ يمكن لإصدار Excel للويب فتح مصنف يحتوي على وحدات ماكرو، لكنه لا يستطيع إنشاء وحدات ماكرو VBA أو تشغيلها أو تعديلها، كما هو موضح في دليل Microsoft Excel للويب . تأكد من أسماء علامات التبويب وعناوين المصدر والوجهة بدقة. في هذا المثال، توجد الصيغ في [المسار] Source!C2:C10وسيتم وضعها في Summary[المسار]، بدءًا من [العنوان] C2.
يستخدم هذا المثال ThisWorkbookالمصنف الذي يحتوي على رمز الماكرو. احتفظ بالماكرو في هذا المصنف، أو غيّر مرجع المصنف إذا كان الرمز مخزنًا في مكان آخر. يتم اختيار أسماء أوراق العمل من Worksheetsمجموعة المصنف؛ ويجب أن يتطابق الاسم بين علامتي الاقتباس تمامًا مع علامة التبويب.
افتح محرر Visual Basic من علامة تبويب المطور في Excel.
انسخ الصيغ إلى ورقة أخرى باستخدام VBA
افتح محرر Visual Basic من علامة تبويب المطور في Excel ، واختر Visual Basic ، ثم حدد إدراج > وحدة نمطية . الصق هذا الإجراء في الوحدة النمطية:
Sub CopyFormulasToAnotherSheet()
Dim wb As Workbook
Dim sourceRange As Range
Dim targetCell As Range
Dim targetRange As Range
Set wb = ThisWorkbook
Set sourceRange = wb.Worksheets("Source").Range("C2:C10")
Set targetCell = wb.Worksheets("Summary").Range("C2")
Set targetRange = targetCell.Resize(sourceRange.Rows.Count, _
sourceRange.Columns.Count)
targetRange.FormulaR1C1 = sourceRange.FormulaR1C1
End Sub
غيّر عناوين النطاقات لتتوافق مع مصنفك. هي خلية الوجهة الأولى؛ Sourceتجعل الوجهة بنفس ارتفاع وعرض المصدر، وهو أمر ضروري لتعيين عدة خلايا. بالنسبة لصيغة واحدة، عيّن المصدر إلى خلية واحدة، مثل .SummarytargetCellResizeC2
يقوم الماكرو بتعيين نمط FormulaR1C1 الخاص بنطاق المصدر إلى نطاق الوجهة.
قم بتشغيل الماكرو وحفظه
ضع مؤشر الكتابة في أي مكان داخل CopyFormulasToAnotherSheetمحرر Visual Basic واضغط على F5 . يمكنك أيضًا العودة إلى Excel، وتحديد المطور > وحدات الماكرو ، واختيار الإجراء، ثم تحديد تشغيل .
تحقق من خلايا الوجهة في Summary. عند استخدام صيغة مصدر مثل =A2*B2تلك الموجودة في Source!C2، يكون نمط الصيغة المنسوخة في Summary!C2هو نفسه =A2*B2. إذا كان ينبغي للصيغة الاستمرار في قراءة القيم من ورقة المصدر، فحدد تلك المراجع في صيغة المصدر، على سبيل المثال =Source!A2*Source!B2.
احفظ المصنف كمصنف Excel يدعم وحدات الماكرو ( .xlsm) حتى يتم الاحتفاظ بإجراء VBA. إذا طلب منك Excel معلومات حول أمان وحدات الماكرو، فقم بتشغيل وحدات الماكرو التي تثق بها فقط.
تحتوي ورقة العمل الوجهة الآن على نفس نمط الصيغة النسبية في الخلية C2.
اختر الطريقة المناسبة لصيغك
FormulaR1C1ينسخ هذا الأمر بنية الصيغة. يبقى المرجع الموجود على بُعد عمودين إلى يسار خلية الصيغة في مكانه في الوجهة؛ وتبقى المراجع المطلقة ثابتة. يُفيد هذا الأمر عند الرغبة في تطبيق نمط الحساب نفسه في نطاق الوجهة المُطابق. لا ينسخ هذا الأمر التنسيق. إذا كان نطاق المصدر يتضمن ثوابت أو خلايا فارغة، فسيتم نقلها كقيم أو خلايا فارغة أيضًا، لذا يُنصح باستخدام نطاق مُكوّن من الصيغ التي ترغب في نسخها.
للحصول على سلوك نسخ عادي في Excel - بما في ذلك الصيغ والتنسيق - استخدمه Range.Copyمع وجهة:
ينسخ هذا الأمر محتويات الخلية بالكامل وتنسيقها؛ ويُعدّل Excel المراجع النسبية كما يفعل أثناء النسخ العادي. استخدمه عندما تحتاج الوجهة إلى أكثر من مجرد صيغ. توثّق Microsoft كلاً من الخاصية FormulaR1C1 وطريقة Range.Copy .
استكشاف الأخطاء وإصلاحها في المشاكل الشائعة
"الرمز السفلي خارج النطاق": تحقق من أن أسماء أوراق العمل مكتوبة تمامًا كما تظهر في علامات التبويب، بما في ذلك المسافات.
تشير الصيغة إلى خلايا خاطئة:FormulaR1C1 فهي تحمل مراجع نسبية إلى ورقة الوجهة. أضف اسم ورقة إلى الصيغة عندما يجب أن تستمر في الإشارة إلى ورقة المصدر.
يستخدم الكود ملف العمل الخاطئ:ThisWorkbook يشير إلى الملف الذي يحتوي على الماكرو. إذا كان الكود موجودًا في ملف عمل خاص بالماكرو، فأشر wbإلى ملف العمل المفتوح بالاسم بدلاً من ذلك.
الماكرو غير مدرج: تأكد من حفظ الملف باسم .xlsmوأن وحدات الماكرو مُفعّلة لملف موثوق. تشرح تعليمات مايكروسوفت الخاصة بالماكرو كيفية تفعيل علامة تبويب المطور وتشغيل الإجراء.
عندما يتم تحديد أسماء المصدر والوجهة والنطاقات وسلوك المرجع بشكل متعمد، يمكن للماكرو نسخ صيغة واحدة أو كتلة كاملة دون تحديد أوراق أو الاعتماد على الحافظة.