كيفية فتح ملف Excel ونسخ البيانات منه إلى ملف آخر باستخدام VBA في Excel
تعتبر
مهمة فتح ملف
Excel ونسخ البيانات منه
إلى ملف آخر من المهام الشائعة في
Excel. يمكنك استخدام لغة
VBA (Visual Basic for Applications) في Excel لتنفيذ هذه المهمة بسهولة. ستتعلم في هذا المقال كيفية استخدام VBA لفتح ملف Excel ونسخ البيانات منه إلى ملف آخر.
كيف نقوم بذلك ( الخطوات )
1. قم بفتح Excel وانشئ ملف جديد.
2. اضغط على ALT + F11 لفتح محرر VBA.
3. في محرر VBA، انقر بزر الماوس الأيمن على اسم المشروع في العنوان واختر "Insert" ثم "Module" لإنشاء
وحدة جديدة.
4. في وحدة VBA، قم بكتابة الكود التالي:
Sub
ImportDataFromAnotherExcelFile()
Dim sourceWorkbook As Workbook
Dim targetWorkbook As Workbook
' تحديد الملف المصدر
Set sourceWorkbook =
Workbooks.Open("C:\Path\to\Source\File.xlsx")
' تحديد الملف الحالي
Set targetWorkbook = ThisWorkbook
' نسخ البيانات من الملف المصدر إلى الملف الحالي
sourceWorkbook.Sheets("Sheet1").UsedRange.Copy
targetWorkbook.Sheets("Sheet2").Range("A1")
' إغلاق الملف المصدر
sourceWorkbook.Close SaveChanges:=False
End Sub
في هذا المثال، يتم فتح الملف المصدر باستخدام الدالة `Workbooks.Open` وتعيينه إلى متغير `sourceWorkbook`، ثم يتم تحديد الملف الحالي باستخدام `ThisWorkbook` وتعيينه إلى متغير `targetWorkbook`. بعد ذلك، يتم نسخ البيانات من ورقة العمل "Sheet1" في الملف المصدر إلى ورقة العمل "Sheet2" في الملف الحالي باستخدام الدالة `Copy`. أخيرًا، يتم إغلاق الملف المصدر باستخدام الدالة `Close`.
يجب تغيير المسار "C:\Path\to\Source\File.xlsx" إلى المسار الفعلي للملف المصدر الذي ترغب في استيراد البيانات منه. كما يجب تغيير أسماء ورق العمل والأشرطة الفرعية حسب الحاجة.
قم بفتح محرر VBA في Excel بالنقر على ALT + F11، ثم انسخ الكود في وحدة VBA (مثل وحدة "Module") وقم بتشغيل الكود عن طريق النقر على زر التشغيل أو بتنفيذ أمر يقوم بتنفيذ البرنامج النصي.
يجب أن يقوم
الكود بفتح الملف المصدر ونسخ البيانات إلى الملف الحالي في Excel.
نسخ البيانات من أكثر من ورقة عمل في الملف المصدر؟
يمكنك استخدام الكود السابق لنسخ البيانات من أكثر من ورقة عمل في الملف المصدر. يمكنك تكرار عملية النسخ لكل ورقة عمل ترغب في استيراد البيانات منها.
Sub
ImportDataFromMultipleSheets()
Dim sourceWorkbook As Workbook
Dim targetWorkbook As Workbook
Dim sourceWorksheet As Worksheet
Dim targetWorksheet As Worksheet
' تحديد الملف المصدر
Set sourceWorkbook = Workbooks.Open("C:\Path\to\Source\File.xlsx")
' تحديد الملف الحالي
Set targetWorkbook = ThisWorkbook
' ستقوم فى هذة الحلقة التكرارية باستبراد
البيانات من كل اوراق العمل
For Each sourceWorksheet In
sourceWorkbook.Worksheets
' اختيار ورقة العمل المستهدفة في الملف الحالي
Set targetWorksheet = targetWorkbook.Sheets(sourceWorksheet.Name)
نسخ
البيانات من الملف المصدر إلى الملف الحالى
sourceWorksheet.UsedRange.Copy
targetWorksheet.Range("A1")
Next sourceWorksheet
' إغلاق الملف المصدر
sourceWorkbook.Close SaveChanges:=False
End Sub
في هذا المثال، يتم استخدام حلقة `For Each` لتكرار عملية النسخ لكل ورقة عمل في الملف المصدر. بعد ذلك، يتم تحديد ورقة العمل المستهدفة في الملف الحالي باستخدام اسم الورقة الفرعية (`sourceWorksheet.Name`) وتعيينها إلى متغير `targetWorksheet`. يتم نسخ البيانات من ورقة العمل المصدر إلى ورقة العمل المستهدفة كما هو موضح في الكود.
يرجى ملاحظة أنه يجب أن تكون لديك ورقة عمل في
الملف الحالي بنفس اسم ورقة العمل في الملف المصدر لنقل البيانات إليها. يمكنك ضبط
اسم الورقة الفرعية في الخط
`Set targetWorksheet = targetWorkbook.Sheets(sourceWorksheet.Name)` حسب الحاجة
تعديل الكود لنسخ البيانات إلى ورقة عمل جديدة في الملف الحالي؟
نعم، يمكنك تعديل الكود لنسخ البيانات إلى ورقة
عمل جديدة في الملف الحالي. يمكنك استخدام الدالة `
Sheets.Add` لإنشاء ورقة عمل جديدة في الملف الحالي ونسخ البيانات إليها.
فيما يلي مثال يوضح كيفية تعديل الكود لنسخ البيانات إلى ورقة عمل جديدة في الملف الحالي:
Sub
ImportDataToNewWorksheet()
Dim sourceWorkbook As Workbook
Dim targetWorkbook As Workbook
Dim sourceWorksheet As Worksheet
Dim targetWorksheet As Worksheet
' تحديد الملف المصدر
Set sourceWorkbook = Workbooks.Open("C:\Path\to\Source\File.xlsx")
' تحديد الملف الحالي
Set targetWorkbook = ThisWorkbook
' إنشاء ورقة عمل جديدة في الملف الحالي
Set targetWorksheet =
targetWorkbook.Sheets.Add(After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count))
targetWorksheet.Name = "NewSheet"
' استيراد البيانات من المصدر إلى الورقة الجديدة
For Each sourceWorksheet In
sourceWorkbook.Worksheets
' نسخ البيانات من الملف المصدر إلى الملف الحالى
sourceWorksheet.UsedRange.Copy
targetWorksheet.Range("A1")
Next sourceWorksheet
' إغلاق الملف المصدر
sourceWorkbook.Close SaveChanges:=False
End Sub
في هذا المثال، تمت إضافة بعض الأسطر لإنشاء ورقة عمل جديدة في الملف الحالي باستخدام `Sheets.Add`. يتم تعيين الورقة الجديدة إلى متغير `targetWorksheet` ويتم تعيين اسم الورقة الجديدة إلى "NewSheet" باستخدام `targetWorksheet.Name = "NewSheet"`.
ثم يتم نسخ البيانات من المصدر إلى الورقة الجديدة باستخدام الحلقة `For Each` كما هو موضح في الكود.
يمكنك تعديل اسم الورقة الجديدة وتخصيصها حسب الحاجة في الخط `targetWorksheet.Name = "NewSheet"`.
يرجى ملاحظة أنه يتم إضافة الورقة الجديدة بعد
الورقة الأخيرة الموجودة في الملف الحالي باستخدام
`After:=targetWorkbook.Sheets(targetWorkbook.Sheets.Count)`، ويمكنك تغيير هذا حسب رغبتك..
وفى النهاية نعلمنا في هذا المقال، تعلمت كيفية
استخدام VBA
في Excel لفتح ملف Excel ونسخ
البيانات منه إلى ملف آخر. يمكنك تكييف الكود وتعديله وفقًا لاحتياجاتك الخاصة،
مثل تغيير المسارات وأسماء ورق العمل والأشرطة الفرعية. استخدم هذا المقال كنقطة
انطلاق لتعلم المزيد حول
VBA وإجراءات أخرى
يمكنك تنفيذها في
Excel باستخدام البرمجة