VBA

الدرس الحادي عشر: تصدير البيانات إلى Excel باستخدام VBA

الدرس الحادي عشر: تصدير البيانات إلى Excel باستخدام VBA
الدرس الحادي عشر: تصدير البيانات إلى Excel باستخدام VBA

 

الدرس الحادي عشر: تصدير البيانات إلى Excel باستخدام VBA

مقدمة:

في هذا الدرس، سنتعرف على كيفية تصدير البيانات من Excel إلى ملف Excel آخر باستخدام VBA. تصدير البيانات إلى ملفات خارجية مثل Excel أمر أساسي في أتمتة الأعمال. قد تحتاج إلى تصدير البيانات من ورقة العمل الحالية إلى ملف آخر، سواء كان لعمل تقارير، أو لإرسال البيانات لمشاريع أخرى.


1. تصدير البيانات إلى ملف Excel آخر باستخدام VBA

لنقل إن لديك جدول بيانات في Excel، وتريد تصدير هذا الجدول إلى ملف Excel آخر. دعونا نكتب كود VBA الذي سيقوم بهذا.


Sub ExportDataToExcel()
Dim wb As Workbook
Dim ws As Worksheet
Dim targetWorkbook As Workbook
Dim targetWorksheet As Worksheet
Dim lastRow As Long
' تحديد ورقة العمل الحالية
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
' تحديد آخر صف يحتوي على بيانات في العمود A
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' فتح ملف Excel جديد أو تحديد ملف موجود للتصدير
Set targetWorkbook = Workbooks.Add
Set targetWorksheet = targetWorkbook.Sheets(1)
' نسخ البيانات من ورقة العمل الحالية إلى الورقة الجديدة
ws.Range("A1:C" & lastRow).Copy targetWorksheet.Range("A1")
' حفظ الملف الجديد
targetWorkbook.SaveAs "C:\path\to\output.xlsx"
targetWorkbook.Close
MsgBox "تم تصدير البيانات بنجاح!"
End Sub

شرح الكود:

  • Set wb = ThisWorkbook: يتم تعيين الكائن wb إلى الكتاب الحالي (الذي يحتوي على الكود).
  • Set ws = wb.Sheets("Sheet1"): يتم تحديد الورقة التي تحتوي على البيانات.
  • lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row: هذه الشيفرة مهمة جدًا! إنها تحدد آخر صف يحتوي على بيانات في العمود "A". من خلال استخدام End(xlUp) ننتقل من آخر صف في العمود حتى أول خلية تحتوي على بيانات.
  • Workbooks.Add: هذه الوظيفة تُنشئ كتاب عمل جديد حيث سيتم تصدير البيانات إليه.
  • ws.Range("A1:C" & lastRow).Copy targetWorksheet.Range("A1"): نقوم بنسخ البيانات من ورقة العمل الأصلية إلى الورقة الجديدة في الكتاب الجديد.
  • targetWorkbook.SaveAs: تحفظ الكتاب الجديد بالمسار المحدد.

التفاصيل :

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


    targetWorksheet.Range("A1:C" & lastRow).Value = ws.Range("A1:C" & lastRow).Value
  • في حالة عملك مع ملفات كبيرة جدًا، قد تلاحظ بعض البطء. لذلك من الأفضل تحسين أداء الكود باستخدام تعطيل التحديثات مثل:


    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    بعد الانتهاء، يجب عليك إعادة تمكين هذه الإعدادات لتجنب التأثير على العمليات الأخرى.


خاتمة:

في هذا الدرس، تعلمنا كيفية تصدير البيانات من Excel إلى ملف آخر باستخدام VBA. في الدرس القادم، سنتناول كيفية التفاعل مع قاعدة بيانات Access باستخدام VBA لقراءة وإدخال البيانات.


تنويه للدرس القادم:

"في الدرس التالي، سنتعرف على كيفية التفاعل مع قاعدة بيانات Access باستخدام VBA، وقراءة البيانات منها وإدخال البيانات إليها. تابعونا لتتعلموا المزيد عن كيفية التعامل مع قواعد البيانات في بيئة VBA."

تعليقات