Przejdź do głównej zawartości

Jak wydrukować długą kolumnę na jednej stronie w programie Excel?

Przypuśćmy, że masz długą listę danych w kolumnie, może 200 wierszy, a teraz musisz je wydrukować, ale kiedy drukujesz, używa około 5 stronicowego papieru, z tylko jedną kolumną po lewej stronie i dużą ilością spacji po prawej stronie. Słowem, możesz kolumnować, ale Excel nie ma tej funkcji. Jak wydrukować dane długiej listy na jednej stronie, aby zaoszczędzić papier?

Wydrukuj długą kolumnę na jednej stronie z formułą

Wydrukuj długą kolumnę na jednej stronie z kodem VBA

Wydrukuj długą kolumnę na jednej stronie za pomocą Kutools for Excel


strzałka niebieski prawy bąbelek Wydrukuj długą kolumnę na jednej stronie z formułą

Tutaj mogę przedstawić długą formułę rozwiązania tego problemu, wykonaj następujące czynności:

1. W nowym arkuszu aktywnego skoroszytu wprowadź formułę =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) do komórki A1.

Uwagi: Sheet1 to arkusz roboczy zawierający długą listę, którą chcesz umieścić w kolumnie.

45 to numer wiersza, w którym chcesz wyświetlić dane w kolumnie.

Wszystkie są zmiennymi i możesz je zmienić w razie potrzeby.

2. Następnie wybierz komórkę A1 i przeciągnij uchwyt wypełniania w dół do wiersza 45, a następnie przeciągnij uchwyt wypełniania w prawo, aż dane zostaną wyświetlone. Długa kolumna została podzielona na kilka kolumn, aby zmieścić się na jednej stronie w nowym arkuszu. Zobacz zrzut ekranu:

doc-print-długa-kolumna1


strzałka niebieski prawy bąbelek Wydrukuj długą kolumnę na jednej stronie z kodem VBA

Poniższy kod VBA może również pomóc w podzieleniu długiej listy danych na kilka kolumn, aby można było wydrukować dane i zaoszczędzić papier.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

2. Kliknij wstawka > Modułi wklej następujący kod w oknie modułu.

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. Następnie naciśnij F5 klucz do uruchomienia tego kodu i wybierz listę danych, które chcesz podzielić w wyskakującym oknie dialogowym, zobacz zrzut ekranu:

doc-print-długa-kolumna2

4. Kliknij OKi wprowadź liczbę kolumn, które chcesz podzielić. Zobacz zrzut ekranu:

doc-print-długa-kolumna3

5, i kliknij OK, długa kolumna została podzielona na pięć kolumn w nowym arkuszu. Zobacz zrzuty ekranu:

doc-print-długa-kolumna4 -2 doc-print-długa-kolumna5

strzałka niebieski prawy bąbelek Wydrukuj długą kolumnę na jednej stronie za pomocą Kutools for Excel

Zarówno długa formuła, jak i kod VBA mogą być dla Ciebie trudne, tutaj mogę przedstawić łatwą i wygodną metodę rozwiązania tego problemu. Kutools dla programu Excel'S Drukuj wiele kolumn funkcja może pomóc w szybkim podzieleniu długiej kolumny na kilka kolumn, aby można było je rozsądnie wydrukować.

Kutools dla programu Excel zawiera ponad 300 przydatnych narzędzi programu Excel. Bezpłatne wypróbowanie bez ograniczeń w ciągu 30 dni. Pobierz teraz.

Po zainstalowaniu Kutools dla programu Excel możesz wykonać następujące czynności:

1. Kliknij Enterprise > Drukuj wiele kolumnzobacz zrzut ekranu:

doc-print-długa-kolumna6

2, w Drukuj wiele kolumn Okno dialogowe:

  • Kliknij pierwszy przycisk doc , aby wybrać tytuł zakresu, a następnie kliknij drugi przycisk doc, aby wybrać kolumnę, którą chcesz podzielić.
  • Następnie określ liczbę wierszy, z których chcesz umieścić na stronie Wiersze na wydrukowaną stronęi wprowadź liczbę kolumn, które chcesz umieścić na jednej stronie Liczba segmentów. Zobacz zrzut ekranu:

doc-print-długa-kolumna7

3. Następnie kliknij OK, dane z długiej listy zostały podzielone na pięć kolumn na stronie. Zobacz zrzuty ekranu:

doc-print-długa-kolumna8 -2 doc-print-długa-kolumna9

Uwagi:

1. Tytuł zostanie dodany przed każdą kolumną.

2. Jeśli zaznaczysz Utwórz łącze z aktywnym arkuszem opcja, nowe dane arkusza mogą być połączone z danymi źródłowymi.

Jeśli chcesz dowiedzieć się więcej o tej funkcji, kliknij Drukuj wiele kolumn.

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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