Preskoči na glavno vsebino

Kako natisniti dolg stolpec na eno stran v Excelu?

Recimo, da imate v stolpcu dolg seznam podatkov, morda 200 vrstic, zdaj pa jih morate natisniti, toda pri tiskanju uporablja približno 5 strani papirja, z le enim stolpcem na levi strani in veliko praznega prostora na desni strani. Z besedo lahko stolpec, vendar Excel nima te funkcije. Kako natisnete podatke dolgega seznama na eno stran, da prihranite papir?

Natisnite dolg stolpec na eno stran s formulo

Natisnite dolg stolpec na eno stran s kodo VBA

Natisnite dolg stolpec na eno stran s programom Kutools za Excel


puščica modri desni mehurček Natisnite dolg stolpec na eno stran s formulo

Tukaj vam lahko predstavim dolgo formulo za rešitev te težave, naredite tako:

1. V nov delovni list vašega aktivnega delovnega zvezka vnesite formulo =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) v celico A1.

Opombe: Sheet1 je delovni list z dolgim ​​seznamom, ki ga želite stolpec.

45 je številka vrstice, za katero želite navesti podatke v stolpcu.

Vse so spremenljivke in jih lahko spreminjate po potrebi.

2. Nato izberite celico A1 in povlecite ročico za polnjenje navzdol do vrstice 45, nato pa povlecite ročico za polnjenje čez desno, dokler se ne prikažejo podatki. In dolg stolpec je bil razdeljen na več stolpcev, da je na novem delovnem listu na eni strani. Oglejte si posnetek zaslona:

doc-print-dolgi-stolpec1


puščica modri desni mehurček Natisnite dolg stolpec na eno stran s kodo VBA

Naslednja koda VBA vam lahko pomaga tudi razdeliti dolg seznam podatkov v več stolpcev, tako da lahko podatke natisnete in prihranite papir.

1. Držite tipko ALT + F11 in odpre tipko Microsoft Visual Basic za aplikacije okno.

2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v okno modula.

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. Nato pritisnite F5 tipko za zagon te kode in v pojavnem pogovornem oknu izberite podatke seznama, ki jih želite razdeliti, glejte posnetek zaslona:

doc-print-dolgi-stolpec2

4. Kliknite OKin vnesite število stolpcev, ki jih želite razdeliti. Oglejte si posnetek zaslona:

doc-print-dolgi-stolpec3

5. in kliknite OK, je bil dolg stolpec v novem delovnem listu razdeljen na pet stolpcev. Oglejte si posnetke zaslona:

doc-print-dolgi-stolpec4 -2 doc-print-dolgi-stolpec5

puščica modri desni mehurček Natisnite dolg stolpec na eno stran s programom Kutools za Excel

Tako dolga formula kot koda VBA vam lahko predstavljata težavo, tukaj vam lahko predstavim enostavno in priročno metodo za rešitev te težave. Kutools za ExcelJe Natisnite več stolpcev funkcija vam lahko pomaga hitro razdeliti dolg stolpec na več stolpcev, da jih boste lahko razumno natisnili.

Kutools za Excel vključuje več kot 300 priročnih orodij Excel. Brezplačno poskusite brez omejitev v 30 dneh. Get it now.

Ko namestite Kutools za Excel, lahko storite naslednje:

1. Kliknite Podjetje > Natisnite več stolpcev, glej posnetek zaslona:

doc-print-dolgi-stolpec6

2. v Natisnite več stolpcev pogovorno okno:

  • Kliknite prvo gumb doc , da izberete naslov obsega, in nato kliknite drugega gumb docgumb, da izberete stolpec, ki ga želite razdeliti.
  • Nato določite število vrstic, ki jih želite postaviti na stran Vrstice na natisnjeno stranin pod eno stran vnesite želeno število stolpcev Število segmentov. Oglejte si posnetek zaslona:

doc-print-dolgi-stolpec7

3. Nato kliknite OK, so podatki dolgega seznama razdeljeni na pet stolpcev na strani. Oglejte si posnetke zaslona:

doc-print-dolgi-stolpec8 -2 doc-print-dolgi-stolpec9

Opombe:

1. Naslov bo dodan pred vsakim stolpcem.

2. Če preverite Ustvarite povezavo z aktivnim listom možnost novih delovnih listov lahko povežete z izvornimi podatki.

Če želite izvedeti več o tej funkciji, kliknite Natisnite več stolpcev.

Najboljša pisarniška orodja za produktivnost

Priljubljene funkcije: Poiščite, označite ali identificirajte dvojnike   |  Izbriši prazne vrstice   |  Združite stolpce ali celice brez izgube podatkov   |   Krog brez formule ...
Super iskanje: Več kriterijev VLookup    Multiple Value VLookup  |   VLookup na več listih   |   Nejasno iskanje ....
Napredni spustni seznam: Hitro ustvarite spustni seznam   |  Odvisni spustni seznam   |  Večkrat izberite spustni seznam ....
Upravitelj stolpcev: Dodajte določeno število stolpcev  |  Premakni stolpce  |  Preklop stanja vidnosti skritih stolpcev  |  Primerjaj obsege in stolpce ...
Predstavljene funkcije: Mrežni fokus   |  Pogled oblikovanja   |   Velika vrstica formule    Upravitelj delovnih zvezkov in listov   |  Knjižnica virov (Samodejno besedilo)   |  Izbirnik datuma   |  Združite delovne liste   |  Šifriranje/dešifriranje celic    Pošljite e-pošto po seznamu   |  Super filter   |   Poseben filter (filter krepko/ležeče/prečrtano ...) ...
15 najboljših kompletov orodij12 Besedilo Orodja (dodajanje besedila, Odstrani znake,...)   |   50 + Graf Vrste (Gantt Chart,...)   |   40+ Praktično Formule (Izračunajte starost glede na rojstni dan,...)   |   19 vstavljanje Orodja (Vstavite kodo QR, Vstavi sliko s poti,...)   |   12 Pretvorba Orodja (Številke v besede, Pretvorba valut,...)   |   7 Spoji in razdeli Orodja (Napredne kombinirane vrstice, Razdeljene celice,...)   |   ... in več

Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa.  Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...

zavihek kte 201905


Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
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