Salt la conținutul principal

Cum se imprimă o coloană lungă pe o singură pagină în Excel?

Autor: Xiaoyang Ultima modificare: 2013-11-21

Presupunând că aveți o listă lungă de date într-o coloană, poate 200 de rânduri, iar acum trebuie să le imprimați, dar când tipăriți, folosește aproximativ 5 pagini de hârtie, cu o singură coloană în partea stângă și mult spațiu alb pe partea dreapta. În cuvinte, puteți coloana, dar Excel nu are această funcție. Cum tipăriți datele listei lungi pe o pagină pentru a salva hârtia?

Imprimați o coloană lungă pe o pagină cu formula

Imprimați o coloană lungă pe o pagină cu cod VBA

Imprimați o coloană lungă pe o singură pagină cu Kutools pentru Excel


săgeată albastru dreapta balon Imprimați o coloană lungă pe o pagină cu formula

Aici vă pot prezenta o formulă lungă pentru a rezolva această problemă, vă rugăm să faceți acest lucru:

1. Într-o nouă foaie de lucru a registrului de lucru activ, introduceți formula =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) în celula A1.

notițe: Sheet1 este foaia de lucru care are lista lungă pe care doriți să o coloană.

45 este numărul rândului pe care doriți să listați datele într-o coloană.

Toate sunt variabile și le puteți schimba în funcție de nevoile dvs.

2. Apoi selectați celula A1 și trageți mânerul de umplere în jos până la rândul 45, apoi continuați să trageți mânerul de umplere peste dreapta până când datele sunt afișate. Și coloana lungă a fost împărțită în mai multe coloane pentru a se potrivi pe o singură pagină într-o nouă foaie de lucru. Vedeți captura de ecran:

doc-print-coloana-lungă1


săgeată albastru dreapta balon Imprimați o coloană lungă pe o pagină cu cod VBA

Următorul cod VBA vă poate ajuta, de asemenea, să împărțiți o listă lungă de date în mai multe coloane, astfel încât să puteți imprima datele și să economisiți hârtie.

1. Țineți apăsat butonul ALT + F11 tastele și deschide fișierul Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

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. Apoi apăsați pe F5 pentru a rula acest cod și selectați datele din listă pe care doriți să le împărțiți în caseta de dialog pop-up, consultați captura de ecran:

doc-print-coloana-lungă2

4. Clic OKși introduceți numărul de coloane pe care doriți să le împărțiți. Vedeți captura de ecran:

doc-print-coloana-lungă3

5. și faceți clic OK, coloana lungă a fost împărțită în cinci coloane într-o nouă foaie de lucru. Vedeți capturi de ecran:

doc-print-coloana-lungă4 -2 doc-print-coloana-lungă5

săgeată albastru dreapta balon Imprimați o coloană lungă pe o singură pagină cu Kutools pentru Excel

Atât formula lungă, cât și codul VBA pot fi dificile pentru dvs., aici vă pot prezenta o metodă ușoară și convenabilă pentru a rezolva această problemă. Kutools pentru Excel'S Tipăriți mai multe coloane funcția vă poate ajuta să împărțiți rapid coloana lungă în mai multe coloane, astfel încât să le puteți imprima în mod rezonabil.

Kutools pentru Excel include mai mult de 300 de instrumente Excel la îndemână. Încercare gratuită fără limitări în 30 de zile. Ia-l acum.

Când ați instalat Kutools pentru Excel, puteți efectua următorii pași:

1. Clic Afacere > Tipăriți mai multe coloane, vezi captura de ecran:

doc-print-coloana-lungă6

2. În Tipăriți mai multe coloane căsuță de dialog:

  • Faceți clic pe primul buton doc pentru a selecta titlul intervalului, apoi faceți clic pe al doilea buton docpentru a selecta coloana pe care doriți să o împărțiți.
  • Apoi specificați numărul de rânduri pe care doriți să le puneți pe pagină Rânduri pe pagină tipărită, și introduceți numărul de coloane pe care le doriți într-o singură pagină Numărul de segmente. Vedeți captura de ecran:

doc-print-coloana-lungă7

3. Apoi apasa OK, datele listei lungi au fost împărțite în cinci coloane într-o pagină. Vedeți capturi de ecran:

doc-print-coloana-lungă8 -2 doc-print-coloana-lungă9

note:

1. Titlul va fi adăugat înainte de fiecare coloană.

2. Dacă bifați Creați un link cu foaia activă opțiunea, noile date ale foii de lucru pot fi legate de datele sursă.

Dacă doriți să aflați mai multe despre această caracteristică, faceți clic pe Tipăriți mai multe coloane.

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations