انتقل إلى المحتوى الرئيسي

كيفية طباعة عمود طويل على صفحة واحدة في إكسيل؟

لنفترض أن لديك قائمة طويلة من البيانات في عمود ، ربما 200 صف ، والآن تحتاج إلى طباعتها ، ولكن عند الطباعة ، تستخدم حوالي 5 صفحات من الورق ، مع عمود واحد فقط في الجانب الأيسر ، ومساحة بيضاء كبيرة على الجانب الأيمن. في Word ، يمكنك العمود ، لكن Excel ليس لديه هذه الوظيفة. كيف يمكنك طباعة بيانات القائمة الطويلة على صفحة واحدة لحفظ الورق؟

طباعة عمود طويل على صفحة واحدة مع الصيغة

اطبع عمودًا طويلًا على صفحة واحدة برمز VBA

اطبع عمودًا طويلًا على صفحة واحدة باستخدام Kutools for Excel


السهم الأزرق الحق فقاعة طباعة عمود طويل على صفحة واحدة مع الصيغة

هنا يمكنني تقديم صيغة طويلة لحل هذه المشكلة ، يرجى القيام بذلك على النحو التالي:

1. في ورقة عمل جديدة من المصنف النشط ، أدخل الصيغة =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) في الخلية A1.

ملاحظة: Sheet1 هي ورقة العمل التي تحتوي على القائمة الطويلة التي تريد عمودها.

45 هو رقم الصف الذي تريده لسرد البيانات في عمود.

كلها متغيرات ، ويمكنك تغييرها حسب حاجتك.

2. ثم حدد الخلية A1 ، واسحب مقبض التعبئة لأسفل إلى الصف 45 ، ثم استمر في سحب مقبض التعبئة إلى اليمين حتى يتم عرض البيانات. وقد تم تقسيم العمود الطويل إلى عدة أعمدة ليلائم صفحة واحدة في ورقة عمل جديدة. انظر لقطة الشاشة:

doc- طباعة- عمود طويل 1


السهم الأزرق الحق فقاعة اطبع عمودًا طويلًا على صفحة واحدة برمز VBA

يمكن أن يساعدك رمز VBA التالي أيضًا في تقسيم قائمة طويلة من البيانات إلى عدة أعمدة ، بحيث يمكنك طباعة البيانات وحفظ الورق.

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

2. انقر إدراج > وحدة، والصق التعليمة البرمجية التالية في نافذة الوحدة النمطية.

Sub SingleToMultiColumn()
    Dim rng As Range
    Dim iCols As Integer
    Dim lRows As Long
    Dim iCol As Integer
    Dim lRow As Long
    Dim lRowSource As Long
    Dim x As Long
    Dim wks As Worksheet
    Set rng = Application.InputBox _
      (prompt:="Select the range to convert", _
      Type:=8)
    iCols = InputBox("How many columns do you want?")
    lRowSource = rng.Rows.Count
    lRows = lRowSource / iCols
    If lRows * iCols <> lRowSource Then lRows = lRows + 1
    Set wks = Worksheets.Add
    lRow = 1
    x = 1
    For iCol = 1 To iCols
        Do While x <= lRows And lRow <= lRowSource
            Cells(x, iCol) = rng.Cells(lRow, 1)
            x = x + 1
            lRow = lRow + 1
        Loop
        x = 1
    Next
End Sub

3. ثم اضغط على F5 مفتاح لتشغيل هذا الرمز ، وحدد بيانات القائمة التي تريد تقسيمها في مربع الحوار المنبثق ، انظر لقطة الشاشة:

doc- طباعة- عمود طويل 2

4. انقر OK، وأدخل عدد الأعمدة التي تريد تقسيمها. انظر لقطة الشاشة:

doc- طباعة- عمود طويل 3

5. وانقر OK، تم تقسيم العمود الطويل إلى خمسة أعمدة في ورقة عمل جديدة. انظر لقطات الشاشة:

doc- طباعة- عمود طويل 4 -2 doc- طباعة- عمود طويل 5

السهم الأزرق الحق فقاعة اطبع عمودًا طويلًا على صفحة واحدة باستخدام Kutools for Excel

قد تكون كل من الصيغة الطويلة ورمز VBA صعبًا بالنسبة لك ، وهنا يمكنني أن أقدم لك طريقة سهلة ومريحة لحل هذه المشكلة. كوتولس ل إكسيلالصورة طباعة أعمدة متعددة يمكن أن تساعدك الوظيفة في تقسيم العمود الطويل بسرعة إلى عدة أعمدة حتى تتمكن من طباعتها بشكل معقول.

كوتولس ل إكسيل يتضمن أكثر من 300 أداة يدوية لبرنامج Excel. تجربة مجانية بدون قيود خلال 30 يومًا. احصل عليه الآن.

عندما تقوم بتثبيت Kutools for Excel ، يمكنك القيام بالخطوات التالية:

1. انقر مشروع > طباعة أعمدة متعددة، انظر لقطة الشاشة:

doc- طباعة- عمود طويل 6

2. في طباعة أعمدة متعددة صندوق المحادثة:

  • انقر فوق الأول زر doc لتحديد عنوان النطاق ، ثم انقر فوق الثاني زر docلتحديد العمود الذي تريد تقسيمه.
  • ثم حدد عدد الصفوف التي تريد وضع كل صفحة منها عدد الصفوف لكل صفحة مطبوعة، وأدخل عدد الأعمدة التي تريدها في صفحة واحدة تحتها عدد القطاعات. انظر لقطة الشاشة:

doc- طباعة- عمود طويل 7

3. ثم اضغط OK، تم تقسيم بيانات القائمة الطويلة إلى خمسة أعمدة في الصفحة. انظر لقطات الشاشة:

doc- طباعة- عمود طويل 8 -2 doc- طباعة- عمود طويل 9

الملاحظات:

1. سيتم إضافة العنوان قبل كل عمود.

2. إذا قمت بالتدقيق قم بإنشاء ارتباط بالورقة النشطة الخيار ، يمكن ربط بيانات ورقة العمل الجديدة ببيانات المصدر.

إذا كنت تريد معرفة المزيد عن هذه الميزة ، الرجاء النقر فوق طباعة أعمدة متعددة.

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

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


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

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (14)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
I have a column of 10,000 unique numbers, all sorted. The VBA code provides a table, but the Columns are sorted individually.
I would prefer that each page is sorted numerically so easy to follow the data page by page. Any suggestions most welcome.
Keith
This comment was minimized by the moderator on the site
Hello, Paterson,
Maybe the following VBA code can do you a favor:
Sub SingleToMultiColumn()
    Dim xRng As Range
    Dim xCount As Integer
    Dim xICols As Integer
    Dim xLRows As Long
    Dim xICol As Integer
    Dim xLRow As Long
    Dim xLRowSource As Long
    Dim xRowNum As Long
    Dim xFCount, xFNum, xFNum_R, xFNum_C As Long
    Dim x As Long
    Dim xWst As Worksheet
    Dim xJ As Integer
    
    Set xRng = Application.InputBox(prompt:="Select the range to convert", Type:=8)
    xICols = InputBox("How many columns do you want?")
    xRowNum = InputBox("How many rows do you want in a page?")
    xCount = xRng.Count
    xFCount = Fix(xCount / (xICols * xRowNum))
    If xICols * xRowNum * xFCount < xCount Then xFCount = xFCount + 1
    Set xWst = Worksheets.Add
    xJ = 0
    Application.ScreenUpdating = False
    For xFNum = 1 To xFCount
        If xJ = xCount Then Exit For
        For xFNum_C = 1 To xICols
            If xJ = xCount Then Exit For
            For xFNum_R = 1 To xRowNum
                If xJ = xCount Then Exit For
                xWst.Cells((xFNum - 1) * xRowNum + xFNum_R, xFNum_C) = xRng.Item(xJ + 1)
                xJ = xJ + 1
            Next
        Next
    Next
     Application.ScreenUpdating = True
End Sub



Please try, hope it can help you!
This comment was minimized by the moderator on the site
I have a column of 10,000 numbers and the VBA macro will provide a table on several pages. However, I would prefer that each page is sorted numerically rather than the column. Any help appreciated.
This comment was minimized by the moderator on the site
Or you can just copy the table, and paste it in a word document, with as many columns you want to have.
This comment was minimized by the moderator on the site
Thank you! The formula worked seamlessly!
This comment was minimized by the moderator on the site
You can use a simple formula =OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0) to let the data flow horizontally in 5 columns. Then you can select Page size, print first row on each page, etc. Simple, neat, no VBA
This comment was minimized by the moderator on the site
where does this formula go? I am trying to print multiple rows with several columns on one page in a multiple row layout. Similar to this:

john smith week 1
john smith week 2
john smith totals


I have over 100 rows with up to IJ
This comment was minimized by the moderator on the site
Is there a way to modify this formula to work with 3 columns instead of 1?
This comment was minimized by the moderator on the site
Modern Excel (e.g. 365) can use this for single column:
=WRAPCOLS(Sheet1!$A$1:$A$50;45;"")

Similarly, if you want the column spread horizontally use:
=WRAPROWS(Sheet1!$A$1:$A$50;3;"")


If you need multiple columns converted, I created this formula:
=LET(SOURCE;Sheet1!$A$1;R;45;C;3;X;MOD(COLUMN()-1;C);NEW_REL_COL;INT((COLUMN()-1)/C);Y;(NEW_REL_COL)*R+ROW()-1;V;OFFSET(SOURCE;Y;X);IF(OR(V="";ROW()>R);"";V))

Update SOURCE (Sheet1!$A$1) to be the top-left corner of your source, the number behind R (45) for the rows; the number behind C (3) for the columns of your source.

e.g. for output of 2 columns with 30 rows start the formula with =LET(SOURCE;Sheet1!$A$1;R;30;C;2;


On modern Excel (e.g. 365) can use this Spill-Function for multicolumn with an added empty column in between:

=LET(R;45;C;3;EMPTY_COL;TRUE;
E;IF(EMPTY_COL;1;0);ANZ;COUNTA(Sheet1!$A:$A);MY;R;MX;CEILING.MATH(ANZ/MY;1)*(C+E);
MAKEARRAY(MY;MX;LAMBDA(ru;co;
LET(X;MOD(co-1;(C+E));NEW_REL_COL;INT((co-1)/(C+E));Y;(NEW_REL_COL)*R+ru-1;
IF(OR(AND(EMPTY_COL;X=(C+E-1));Y>=ANZ);"";OFFSET(Sheet1!$A$1;Y;X))
))))

Needs to be filled only in one cell and fills out down and right.
Use R and C like above. Fill the value EMPTY_COL with true or false if you want an empty column to be added between the repetitions.
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
I would be interested in a solution like this as well.
This comment was minimized by the moderator on the site
Dear Sir Thanks for this work, This VBA Code is very helpful for my work, I am glad to complete my task in seconds. Thank You. ....
This comment was minimized by the moderator on the site
After searching the internet for hours, I stumbled across this. Its exactly what I was looking for. Nice job and thanks for taking the time out for this.
This comment was minimized by the moderator on the site
Thank you for this information! It was very helpful and easy to use - even for somebody lacking strong computer skills (I used the first method)
This comment was minimized by the moderator on the site
Hello, I have a question related to the second option "Print long column on one page with VBA code". If i have more than one column in range how can I use the same code. Let say the range of "$A$2:$C$118" how can i do it work. Thanks.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations