التفوق - ماكرو لتنسيق التقرير

القضية

آمل أن أتمكن من كتابة ما أبحث عنه بطريقة منطقية للجميع. لدي تقرير عميل أقوم بتشغيله ويقوم بتصديره بطريقة قبيحة.

تبدو هكذا:

 العنوان الضاحية الدولة الرمز البريدي تعليمات التسليم رقم الهاتف رقم الفاكس عنوان البريد الإلكتروني 

جميع المعلومات المذكورة أعلاه موجودة في العمود A ، وأود إنشاء ماكرو يحتوي على المعلومات الموجودة في العمود AF بحيث يكون لكل عنوان عمود جديد.

يمكنني تسجيل وحدات ماكرو أساسية حقًا ، لذلك سأحتاج على الأرجح إلى شخص ما لكتابة واحدة بالنسبة لي حتى أستطيع ببساطة نسخ ولصق * آسف *.

نأمل أن يكون هذا أمرًا بسيطًا حقًا لشخص ما ، وهم على استعداد لمساعدتي. أي اقتراحات / نصيحة موضع تقدير كبير!

حل

موضوعي:

لتقسيم الخطوط هي خلية ونقل كل سطر إلى خلية جديدة في نفس الصف.

الافتراضات:

1. تبدأ البيانات في الصف 2

2. البيانات موجودة في العمود أ

3. العمود المجاور لـ A هو المكان الذي يجب فيه ملء البيانات

4. يجب نقل كل سطر في خلايا البيانات إلى خلية جديدة في نفس الصف

خطوات:

1. قراءة الافتراضات

2. عمل نسخة احتياطية من الملف

3. اضغط ALT + F11 وأدخل وحدة نمطية جديدة

4. الصق الكود (بعد الخطوات)

5. تنفيذ التعليمات البرمجية

الشفرة:

 Sub SpiltData () خافت lMaxRows كـ خافت طويل lRowBeanCounter خافتًا vPos مثل متغير خافت sHold كـ String Dim sTemp مثل String Dim iCellCounter كـ Dim Integer lStartAtRow As Long lStartAtRow As Long lStartAtRow = 1 lMaxRows = Cells (Rows.Count، End) xlUp) .Row لـ lRowBeanCounter = lStartAtRow To lMaxRows sTemp = Cells (lRowBeanCounter، "A") iCellCounter = 2 Do While sTemp "" vPos = 0 vPos = InStr (1، sTemp، Chr (10) إذا كان vPold> = Left (sTemp ، vPos - 1) sTemp = Trim (Mid (sTemp، vPos + 1)) Else sHold = sTemp sTemp = "" End If iCellCounter = iCellCounter + 1 خلايا (lRowBeanCounter) ، = sHold Loop Next lRowBeanCounter 

ملحوظة

بفضل rizvisa1 لهذه النصيحة في المنتدى.

المقال السابق المقالة القادمة

نصائح الأعلى