Note: The other languages of the website are Google-translated. Back to English

كيفية تحويل ملفات Excel متعددة إلى ملفات CSV دفعة واحدة في Excel؟

في Excel ، يمكننا تحويل المصنف إلى ملف CSV باستخدام وظيفة حفظ باسم ، ولكن هل يمكنك معرفة كيفية تحويل ملفات Excel المتعددة دفعة واحدة إلى ملفات CSV منفصلة؟ في هذه المقالة ، أقدم رمز VBA لتحويل جميع ملفات Excel في مجلد دفعة واحدة إلى ملفات CSV في Excel.

تحويل ملفات Excel دفعة واحدة من مجلد إلى ملفات CSV باستخدام VBA

قم بتحويل أوراق المصنف إلى ملفات CSV منفصلة باستخدام Kutools for Excelفكرة جيدة 3


تحويل ملفات Excel دفعة واحدة من مجلد إلى ملفات CSV باستخدام VBA

في Excel ، لا توجد وظيفة مضمنة يمكنها حل هذه المهمة بسرعة باستثناء VBA.

1. قم بتمكين Excel ، واضغط على ALT + F11 مفاتيح مفتوحة ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة لإنشاء وحدة جديدة.

3. انسخ الكود أدناه والصقه في نافذة الوحدة النمطية الجديدة.

فبا: دفعة تحويل ملفات Excel إلى CSV

Sub WorkbooksSaveAsCsvToFolder()

'UpdatebyExtendoffice20181031

Dim xObjWB As Workbook

Dim xObjWS As Worksheet

Dim xStrEFPath As String

Dim xStrEFFile As String

Dim xObjFD As FileDialog

Dim xObjSFD As FileDialog

Dim xStrSPath As String

Dim xStrCSVFName As String

Dim xS  As String

    Application.ScreenUpdating = False

    Application.EnableEvents = False

    Application.Calculation = xlCalculationManual

    Application.DisplayAlerts = False

    On Error Resume Next

Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)

    xObjFD.AllowMultiSelect = False

    xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files"

    If xObjFD.Show <> -1 Then Exit Sub

    xStrEFPath = xObjFD.SelectedItems(1) & "\"

    Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)

 
    xObjSFD.AllowMultiSelect = False

    xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV files"

    If xObjSFD.Show <> -1 Then Exit Sub

    xStrSPath = xObjSFD.SelectedItems(1) & "\"


    xStrEFFile = Dir(xStrEFPath & "*.xls*")


    Do While xStrEFFile <> ""

       xS = xStrEFPath & xStrEFFile

        Set xObjWB = Application.Workbooks.Open(xS)

        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"

        xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV

        xObjWB.Close savechanges:=False

        xStrEFFile = Dir

  Loop

    Application.Calculation = xlCalculationAutomatic

    Application.EnableEvents = True

    Application.ScreenUpdating = True

    Application.DisplayAlerts = True

End Sub

4. صحافة F5 المفتاح ، حدد المجلد الذي يحتوي على ملفات Excel التي تريد تحويلها إلى ملفات CSV في مربع الحوار الأول.
دفعة doc إلى csv 1

5. انقر OK، ثم في مربع الحوار الثاني ، حدد المجلد لوضع ملفات CSV.
دفعة doc إلى csv 2

6. انقر OK، الآن تم تحويل ملفات Excel الموجودة في المجلد إلى ملفات CSV وحفظها في مجلد آخر.
دفعة doc إلى csv 3


قم بتحويل أوراق المصنف إلى ملفات CSV منفصلة باستخدام Kutools for Excel

كما نعلم ، يمكننا فقط تحويل المصنف بأكمله إلى ملف CSV واحد في Excel باستخدام وظيفة Save As الخاصة به. لكن في بعض الأحيان ، تريد تحويل الورقة المفردة إلى ملف CSV ، وفي هذه الحالة ، ملف انقسام وركبوك فائدة كوتولس ل إكسيل يستطيع مساعدتك.

كوتولس ل إكسيل, مع أكثر من 300 وظائف يدوية ، تجعل مهامك أكثر سهولة. 

بعد تثبيت Kutools for Excel ، يرجى القيام بما يلي:(تنزيل مجاني Kutools for Excel الآن!)

1. قم بتمكين المصنف الذي تريد تحويل أوراقه كملفات CSV منفصلة ، انقر فوق كوتولس بلس > مصنف > انقسام وركبوك.
دفعة doc إلى csv 4

2. في ال انقسام وركبوك مربع حوار ، تحقق من اسم الورقة الذي تريد تقسيمه (يتم فحص جميع الأوراق افتراضيًا) ، تحقق حفظ ك اكتب ، اختر CSV (Macintosh) (* .CSV) من القائمة المنسدلة.
دفعة doc إلى csv 5

3. انقر الانقسام لتفرقع أ تصفح بحثًا عن مجلد في مربع الحوار ، اختر أو أنشئ مجلدًا لوضع ملفات CSV.
دفعة doc إلى csv 6

4. انقر OK، الآن تم تقسيم المصنف كملفات CSV منفصلة.
دفعة doc إلى csv 7


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2019 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (33)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
تاي انها حقا تعمل عزيزي !!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
يعمل بشكل رائع ، شكرا على الكود!
ملاحظتي الوحيدة هي أن هذا الرمز يقتطع من أسماء الملفات عندما يكون هناك "." في اسم الملف نفسه (على سبيل المثال ، يتحول file.123.csv إلى file.csv).
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هل وجدت طريقة للتغلب على هذه المشكلة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كارول ،

في السطر 33 ، استبدلت هذا الرمز:

xStrCSVFName = xStrSPath & Left (xStrEFFile، InStr (1، xStrEFFile، ".") - 1) & ".csv"

مع هذا الرمز:

xStrCSVFName = xStrSPath & Left (xStrEFFile، InStr (1، xStrEFFile، ".xlsx") - 1) & ".csv"

لاحظ أنه إذا كنت تستخدم بعض امتدادات Excel الأخرى (.xls ، .xlsm ، وما إلى ذلك) ، فيجب عليك تغييرها على هذا النحو :)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك! هذا وفر لي الكثير من الوقت !!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ملاحظة صغيرة أخرى:

إذا تم تنسيق جميع الخلايا الموجودة في ملفات Excel الأصلية كـ "عام" ، يتم فقد بعض الدقة عند حفظ الملف كملف CSV
على سبيل المثال ، إذا كانت قيمة الخلية في Excel هي 0.123456789123456 ، فإن القيمة في ملف CSV ستكون 0.123456789 (بدون الكسور العشرية المتبقية) ، طالما تم تنسيق الخلية على أنها "عامة". يمكن حل ذلك عن طريق تنسيق جميع الخلايا في ملف Excel إلى أي شيء آخر غير "عام" (على سبيل المثال ، "نص"). في هذه الحالة ، سيظل ملف CSV * يحتوي على التفاصيل / الدقة الكاملة. أي ستكون القيم الموجودة في ملفات Excel سليمة تمامًا بعد الحفظ كملف CSV.

كيف يمكن أن يتغير هذا الماكرو ، لذا فهو يضبط تنسيق جميع الخلايا في ملف Excel على "نص" ، قبل الحفظ كملف CSV؟
أتخيل أنه يجب أن يستفيد بطريقة ما مما يلي ، لكن لا يمكنني معرفة كيفية تضمينه بشكل صحيح في الماكرو:

الخلايا
Selection.NumberFormat = "@"
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لك للمشاركة. أحاول حفظ ملفات xls متعددة تحتوي على قيمة فريدة ، مما ينتج عنه مطالبة بالسؤال بنعم أو لا قبل الحفظ. يقرأ الموجه ..

"قد تفقد بعض الميزات في المصنف الخاص بك إذا قمت بحفظه كملف CSV (محدد بفاصلة). هل تريد الاستمرار في استخدام هذا التنسيق؟"

هل يعرف شخص ما مكان إضافة الرمز للإجابة بنعم على هذه المطالبة؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أعتقد أن الأمر يستحق إضافة معالجة أفضل للأخطاء للملفات ذات الأحرف الخاصة ، حيث يتم تجاهلها ببساطة في الوقت الحالي.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا :)
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا مذهل. شكرًا لك!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، هل هناك تغيير سريع في الكود يسمح لي بالتغيير من CSV UTF-8 (محدد بفواصل) إلى CSV فقط (محدد بفواصل)؟ لقد جربت الطريقة الأولى وكنت متفائلًا ولكن يبدو أنها لن تغيرها لأنها موجودة بالفعل في شكل من أشكال CSV. ربما تكون هناك عملية أسهل ولكن لا يمكنني العثور على أي شيء. ربما يتعين عليّ تحويل 150 ملفًا تم حفظها بهذا التنسيق ولا أريد فتح كل ملف وحفظه باسم إذا كان بإمكاني تجنبه. هو موضع تقدير أي مساعدة!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لذلك ، بعد مراجعة الكود بشكل أقرب قليلاً ، رأيت المكان الذي يجب أن يكون فيه نوع الملف الأولي .xls. لذا فقد أدى استبدال ملف .csv إلى حل المشكلة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
das Makro funktioniert ganz gut، aber bei mir kommt، wenn ich als filename: xlCSVUTF8 eine anders formatierte CSV raus als über speichern unter -> csv (utf8) erreiche!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
xObjWB.SaveAs اسم الملف: = xStrCSVFName ، تنسيق الملف: = xlCSVUTF8
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أيضا أي شريبت يموت فيرسشيدنن سبالتن ألين في عين سبالتي ، داس موست دير فهلر سين؟!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحباً .. في بعض ملفات Excel التي سيتم تحويلها إلى csv هناك اسم اسمي يجب تقريبه ، فما الحل؟ شكرا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا يا سام ، لا يوجد حل لحل هذه المشكلة باستثناء تنسيق البيانات كنص قبل تحويل الملف إلى csv.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
عندما قمت بتشغيل هذا ، تم تحويل ورقة العمل الأولى فقط ، وتجاهل الأوراق الإضافية داخل المصنف. هل هناك طريقة لتعديل الكود ليشمل أوراق إضافية؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، يمكنك تجربة الكود أدناه ، وسيحفظ جميع أوراق المصنفات في المجلد إلى csv بشكل منفصل. لا يمكن أن يعمل المصنف الحالي.
Sub WorkbooksSaveAsCsvToFolder()

'UpdatebyExtendoffice20220520

Dim xObjWB As Workbook

Dim xObjWS As Worksheet

Dim xStrEFPath As String

Dim xStrEFFile As String

Dim xObjFD As FileDialog

Dim xObjSFD As FileDialog

Dim xStrSPath As String

Dim xStrCSVFName As String

Dim xWSh As Worksheet

    Application.ScreenUpdating = False

    Application.EnableEvents = False

    Application.Calculation = xlCalculationManual

    On Error Resume Next

Set xObjFD = Application.FileDialog(msoFileDialogFolderPicker)

    xObjFD.AllowMultiSelect = False

    xObjFD.Title = "Kutools for Excel - Select a folder which contains Excel files"

    If xObjFD.Show <> -1 Then Exit Sub

    xStrEFPath = xObjFD.SelectedItems(1) & "\"

    Set xObjSFD = Application.FileDialog(msoFileDialogFolderPicker)

    xObjSFD.AllowMultiSelect = False

    xObjSFD.Title = "Kutools for Excel - Select a folder to locate CSV Files "

    If xObjSFD.Show <> -1 Then Exit Sub

    xStrSPath = xObjSFD.SelectedItems(1) & "\"

    xStrEFFile = Dir(xStrEFPath & "*.xls*")

    Do While xStrEFFile <> ""

        Set xObjWB = Workbooks.Open(Filename:=xStrEFPath & xStrEFFile)

        For Each xWSh In xObjWB.Worksheets

            xWSh.Activate

            xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & "_" & xWSh.Name & ".csv"

            xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV

        Next

        xStrCSVFName = xStrSPath & Left(xStrEFFile, InStr(1, xStrEFFile, ".") - 1) & ".csv"

        xObjWB.SaveAs Filename:=xStrCSVFName, FileFormat:=xlCSV

        xObjWB.Close savechanges:=False

        xStrEFFile = Dir

  Loop

    Application.Calculation = xlCalculationAutomatic

    Application.EnableEvents = True

    Application.ScreenUpdating = True

End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لم أتمكن من تشغيل هذا لملفات xls الخاصة بي. إنها أوراق عمل 97-03 وأنا أقوم حاليًا بتشغيل إصدار Microsoft 365 الأكثر نشاطًا. عندما أقوم بتشغيل الكود ، يظهر المجلد فارغًا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، أنا آسف لأن مشكلتك لم تظهر مرة أخرى في روايتي ، ليس لدي أي فكرة لمساعدتك.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نفس المشكلة معي. يتم تشغيل أحدث إصدار من Office 365 ولكن لا شيء يحدث بعد تعيين مربعي حوار المجلدين.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، Doc SJ ، شكرًا على تذكيرك ، لقد تحققت من رمز VBA ، ولديه بعض المشكلات في Office 365 ، والآن قمت بتحديث VBA ، يرجى المحاولة مرة أخرى.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
بوم ديا !!

muito top esse codigo، porem estou com o problema abaixo

Tem como salvar em formato "CSV (eparado por vírgulas) (* .csv)"، pois ao Executivear esse código meus arquivos ficam com "،" no formato que eu preciso eles não ficam com essa vírgula
تم تصغير هذا التعليق بواسطة المشرف على الموقع
2019 버전 입니다.
그대로 실행 해 봤지만 아무것도 일어나지 않았습니다 ..
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، YOY ، لقد اختبرت VBA في Professional Plus Excel 2019 ، وهي تعمل بسلاسة وبشكل صحيح. هل يجب أن تعطيني مزيدًا من التفاصيل حول ملفاتك ، مثل النسخة التفصيلية ، ومحتويات الملفات التي تريد تحويلها؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، كيف يمكنني تغيير المحدد؟
في النص أعلاه ، المحدد هو الفاصلة (،).
شكرا لك د
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،
أواجه بعض المشاكل عند استخدام البرنامج النصي
هل يمكنني تغيير المحدد في البرنامج النصي لأن المحدد في إخراج csv موجود بالفاصلة (،)
أحتاج إلى المحدد وليس الفاصلة لأن مجموعات البيانات الخاصة بي تتكون من الكثير من الفواصل.


شكراً لك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
Ajouter Local: = True à cette ligne:
xObjWB.SaveAs اسم الملف: = xStrCSVFName ، تنسيق الملف: = xlCSV ، محلي: = صحيح

Permet de prendre le séparateur de votre système، moi c'est point-virgule؛
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

vor einem Jahr habe ich den VBA-Code ohne probleme ausgeführt. Heute wollte ich es nochmal versuchen، Leider gibt es einen Laufzeitfehler 1004 mit dem Hinweis
"Die Methode 'Calculation' ist für Objekt '_Application' fehlgeschlagen."

Debuggen verweist auf Folgende Zeile:
Application.Calculation = xlCalculationManual

هل أستطيع مساعدتك؟

إل جي ، ماكس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبا،

ich habe den VBA-Code vor einem Jahr ohne probleme angewendet. Jetzt funktioniert es nicht mehr.
Es gibt einen Laufzeitfehler 1004 mit dem Hinweis: "حساب Die Methode 'für das Objekt' _Application 'ist fehlgeschlagen."

Debuggen verweist auf die Zeile "Application.Calculation = xlCalculationManual".

Ich würde mich sehr Freuen، wenn jemand Weiterhelfen könnte.

إل جي ، ماكس
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا ، غاست ، يرجى التحقق مما إذا كان الرمز الذي نسخته صحيحًا أولاً ، لا يوجد "_" في الكود. إذا قمت بالتحقق من صحة جميع التعليمات البرمجية ، يمكنك إزالة سطر الرمز
Application.Calculation = xlCalculationManual ثم حاول مرة أخرى. يرجى ملاحظة أن هناك سطرين Application.Calculation = xlCalculationManual في الكود.
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة