Přejít k hlavnímu obsahu

Jak tisknout dlouhý sloupec na jednu stránku v aplikaci Excel?

Předpokládejme, že máte ve sloupci dlouhý seznam dat, možná 200 řádků, a nyní je musíte vytisknout, ale při tisku se spotřebuje přibližně 5 stránek papíru, pouze s jedním sloupcem na levé straně a velkým prázdným prostorem pravá strana. Ve Wordu můžete sloupcovat, ale Excel tuto funkci nemá. Jak vytisknete data dlouhého seznamu na jednu stránku, abyste ušetřili papír?

Vytiskněte dlouhý sloupec na jednu stránku pomocí vzorce

Vytiskněte dlouhý sloupec na jednu stránku s kódem VBA

Tiskněte dlouhý sloupec na jednu stránku pomocí Kutools pro Excel


šipka modrá pravá bublina Vytiskněte dlouhý sloupec na jednu stránku pomocí vzorce

Zde vám mohu představit dlouhý vzorec k vyřešení tohoto problému, udělejte prosím toto:

1. V novém listu aktivního sešitu zadejte vzorec =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) do buňky A1.

Poznámky: Sheet1 je list, který obsahuje dlouhý seznam, který chcete sloupcovat.

45 je číslo řádku, ve kterém chcete vypsat data ve sloupci.

Jsou to všechny proměnné a můžete je podle potřeby změnit.

2. Poté vyberte buňku A1 a přetáhněte úchyt výplně dolů na řádek 45 a poté přetáhněte úchyt výplně doprava, dokud se data nezobrazí. A dlouhý sloupec byl rozdělen do několika sloupců, aby se vešel na jednu stránku v novém listu. Viz screenshot:

doc-print-long-column1


šipka modrá pravá bublina Vytiskněte dlouhý sloupec na jednu stránku s kódem VBA

Následující kód VBA vám také pomůže rozdělit dlouhý seznam dat do několika sloupců, abyste mohli data vytisknout a ušetřit papír.

1. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do okna modulu.

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. Poté stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a v rozevíracím dialogovém okně vyberte data seznamu, která chcete rozdělit, viz screenshot:

doc-print-long-column2

4, klikněte OKa zadejte počet sloupců, které chcete rozdělit. Viz screenshot:

doc-print-long-column3

5, A klikněte na tlačítko OK, dlouhý sloupec byl v novém listu rozdělen do pěti sloupců. Zobrazit snímky obrazovky:

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

šipka modrá pravá bublina Tiskněte dlouhý sloupec na jednu stránku pomocí Kutools pro Excel

Dlouhý vzorec i kód VBA pro vás mohou být obtížné, zde vám mohu představit snadnou a pohodlnou metodu řešení tohoto problému. Kutools pro ExcelJe Tisk více sloupců Funkce vám pomůže rychle rozdělit dlouhý sloup na několik sloupců, abyste je mohli rozumně vytisknout.

Kutools pro Excel obsahuje více než 300 užitečných nástrojů aplikace Excel. Zdarma to můžete vyzkoušet bez omezení do 30 dnů. Získat nyní.

Po instalaci aplikace Kutools pro Excel můžete postupovat podle následujících kroků:

1, klikněte Enterprise > Tisk více sloupců, viz screenshot:

doc-print-long-column6

2. V Tisk více sloupců dialogové okno:

  • Klikněte na první tlačítko doc Klepnutím na tlačítko vyberte název rozsahu a poté klepněte na druhý tlačítko docvyberte sloupec, který chcete rozdělit.
  • Poté zadejte počet řádků, ze kterých chcete vložit na stránku Řádky na vytištěnou stránkua zadejte požadovaný počet sloupců na jedné stránce pod Počet segmentů. Viz snímek obrazovky:

doc-print-long-column7

3. Pak klikněte na tlačítko OK, byl dlouhý seznam dat rozdělen do pěti sloupců na stránce. Zobrazit snímky obrazovky:

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

Poznámky:

1. Název bude přidán před každý sloupec.

2. Pokud zaškrtnete Vytvořte odkaz s aktivním listem možnost, nová data listu lze propojit se zdrojovými daty.

Pokud se chcete o této funkci dozvědět více, klikněte prosím Tisk více sloupců.

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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