Բաց թողնել հիմնական բովանդակությունը

Ինչպե՞ս երկար սյունակ տպել մեկ էջում Excel- ում:

Ենթադրելով, որ դուք ունեք սյունակում տվյալների երկար ցուցակ, միգուցե 200 տող, և այժմ դուք պետք է տպեք դրանք, բայց տպելիս այն օգտագործում է մոտ 5 էջանոց թուղթ, ձախ կողմում միայն մեկ սյունակ և շատ սպիտակ տարածք: աջ կողմը Բառով դուք կարող եք սյունակել, բայց Excel- ը չունի այս գործառույթը: Ինչպե՞ս եք տպում երկար ցուցակի տվյալները մեկ էջում ՝ թուղթը խնայելու համար:

Տպեք երկար սյունը մեկ էջում բանաձևով

Տպեք երկար սյունը մեկ էջում ՝ VBA կոդով

Տպեք երկար սյունը մեկ էջում Excel- ի համար Kutools- ի հետ


նետ կապույտ աջ պղպջակ Տպեք երկար սյունը մեկ էջում բանաձևով

Այստեղ ես կարող եմ ձեզ ներկայացնել այս խնդրի լուծման երկար բանաձև, խնդրում եմ արեք հետևյալ կերպ.

1, Ձեր ակտիվ աշխատանքային գրքի նոր աշխատանքային թերթում մուտքագրեք բանաձևը =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) մեջ A1 բջիջ:

Notes: Sheet1 այն աշխատանքային թերթն է, որն ունի երկար ցուցակ, որը ցանկանում եք սյունակել:

45 տողի համարն է, որը ցանկանում եք սյունակում թվարկել տվյալները:

Բոլորն էլ փոփոխական են, և դրանք կարող եք փոխել ըստ ձեր պահանջի:

2, Այնուհետև ընտրեք A1 բջիջը և լրացնելու բռնիչը ներքև քաշեք 45-րդ շարքում, ապա շարունակեք լրացնելով բռնիչը քարշ տալով աջից մինչև տվյալները ցուցադրվեն: Եվ երկար սյունը բաժանվել է մի քանի սյունակների, որպեսզի մեկ էջում տեղադրվի նոր աշխատանքային թերթ: Տեսեք,

doc-print-long-column1


նետ կապույտ աջ պղպջակ Տպեք երկար սյունը մեկ էջում ՝ VBA կոդով

Հետևյալ VBA կոդը կարող է նաև օգնել տվյալների երկար ցուցակը բաժանել մի քանի սյունակների, որպեսզի կարողանաք տպել տվյալները և խնայել թուղթ:

1, Պահեք պահեք ALT + F11 ստեղները, և այն բացում է Microsoft Visual Basic հավելվածների համար պատուհան.

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-print-long-column2

4: Սեղմեք OK, և մուտքագրեք սյունակների քանակը, որը ցանկանում եք բաժանել: Տեսեք,

doc-print-long-column3

5, եւ սեղմեք OK, երկար սյունը բաժանված է հինգ սյունակի նոր աշխատանքային թերթում: Տեսեք սքրինշոթերը.

doc-print-long-column4 -2 doc-print-long-column5

նետ կապույտ աջ պղպջակ Տպեք երկար սյունը մեկ էջում Excel- ի համար Kutools- ի հետ

Թե՛ երկար բանաձևը և թե՛ VBA կոդը կարող են դժվար լինել ձեզ համար, այստեղ ես կարող եմ ձեզ ներկայացնել այս խնդրի լուծման հեշտ և հարմար մեթոդ: Excel- ի համար նախատեսված գործիքներ'S Տպել մի քանի սյունակ գործառույթը կօգնի ձեզ արագ բաժանել երկար սյունը մի քանի սյունակների, որպեսզի կարողանաք դրանք հիմնավոր կերպով տպել:

Excel- ի համար նախատեսված գործիքներ ներառում է ավելի քան 300 հարմար Excel գործիքներ: Փորձեք առանց սահմանափակումների 30 օրվա ընթացքում: Get it Now.

Երբ Kutools- ը տեղադրեք Excel- ի համար, կարող եք անել հետևյալ քայլերը.

1: Սեղմեք ձեռնարկություն > Տպել մի քանի սյունակ, տես նկարի նկարը.

doc-print-long-column6

2, Մեջ Տպել մի քանի սյունակ երկխոսության տուփ:

  • Կտտացրեք առաջինը դոկ-կոճակ միջակայքի վերնագիրն ընտրելու կոճակը, ապա կտտացրեք երկրորդին դոկ-կոճակկոճակը ընտրելու համար այն սյունակը, որը ցանկանում եք բաժանել:
  • Դրանից հետո նշեք այն շարքերի քանակը, որոնցից ցանկանում եք տեղադրել յուրաքանչյուր էջի համար Տողեր մեկ տպված էջի համարև մուտքագրեք սյունակների քանակը, որը ցանկանում եք մեկ էջի տակ Բաժինների քանակը, Տեսեք,

doc-print-long-column7

3. Այնուհետեւ կտտացրեք OK, երկար ցուցակի տվյալները բաժանված են էջի հինգ սյունակների: Տեսեք սքրինշոթերը.

doc-print-long-column8 -2 doc-print-long-column9

Նշումներ:

1. Վերնագիրը կավելացվի յուրաքանչյուր սյունակից առաջ:

2. Եթե ստուգում եք Հղում ստեղծեք ակտիվ թերթիկով տարբերակը, նոր աշխատանքային թերթի տվյալները կարող են կապված լինել աղբյուրի տվյալների հետ:

Եթե ​​ցանկանում եք ավելին իմանալ այս հատկության մասին, խնդրում ենք կտտացնել Տպել մի քանի սյունակ.

Գրասենյակի արտադրողականության լավագույն գործիքները

🤖 Kutools AI օգնականՀեղափոխություն կատարել տվյալների վերլուծության հիման վրա՝ Խելացի կատարում   |  Ստեղծեք ծածկագիր  |  Ստեղծեք հատուկ բանաձևեր  |  Վերլուծել տվյալները և ստեղծել գծապատկերներ  |  Invoke Kutools-ի գործառույթները...
Հանրաճանաչ հատկություններ: Գտեք, ընդգծեք կամ նույնականացրեք կրկնօրինակները   |  Deleteնջել դատարկ շարքերը   |  Միավորել սյունակները կամ բջիջները՝ առանց տվյալների կորստի   |   Կլոր առանց բանաձևի ...
Super Փնտրել: Բազմաթիվ չափանիշների VLookup    Բազմակի արժեք VLookup  |   VLookup բազմաթիվ թերթերում   |   Fuzzy Փնտրել ....
Ընդլայնված բացվող ցուցակ: Արագ ստեղծեք բացվող ցուցակը   |  Կախված բացվող ցուցակ   |  Բազմակի ընտրություն Drop Down ցուցակ ....
Սյունակի կառավարիչ: Ավելացրեք որոշակի քանակությամբ սյունակներ  |  Տեղափոխել սյունակները  |  Փոխարկել թաքնված սյունակների տեսանելիության կարգավիճակը  |  Համեմատեք միջակայքերը և սյունակները ...
Առանձնահատկություններ: Ցանցի կենտրոնացում   |  Դիզայնի տեսք   |   Մեծ Formula Bar    Աշխատանքային գրքույկի և թերթիկների կառավարիչ   |  Ռեսուրսների գրադարան (Ավտոմատ տեքստ)   |  Ամսաթիվ ընտրող   |  Միավորել աշխատանքային թերթերը   |  Գաղտնագրել/գաղտնազերծել բջիջները    Ուղարկեք նամակներ ըստ ցանկի   |  Սուպեր զտիչ   |   Հատուկ զտիչ (զտել թավ/շեղ/շեղված...) ...
Լավագույն 15 գործիքների հավաքածու12 Տեքստ Գործիքներ (Ավելացրեք տեքստ, Հեռացնել նիշերը, ...)   |   50+ Աղյուսակ Տեսակներ (Գանտի աղյուսակը, ...)   |   40+ Գործնական Բանաձեւեր (Հաշվարկել տարիքը ՝ ելնելով ծննդյան տարեդարձից, ...)   |   19 միացում Գործիքներ (Տեղադրեք QR կոդ, Տեղադրեք նկար ուղուց, ...)   |   12 Փոխարկում Գործիքներ (Բառեր համարներ, Արտարժույթի փոխակերպումը, ...)   |   7 Միաձուլում և պառակտում Գործիքներ (Ընդլայնված կոմբինատ տողեր, Պառակտված բջիջներ, ...)   |   ... եւ ավելին

Լրացրեք ձեր Excel-ի հմտությունները Kutools-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար:  Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...

Նկարագրություն


Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 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