Note: The other languages of the website are Google-translated. Back to English

如何在Excel中的一頁上打印長列?

假設您在一列中有很長的數據列表,也許有200行,現在您需要打印它們,但是當您打印時,它使用大約5頁紙,左側只有一列,並且上有很多空白右邊。 換句話說,您可以列,但Excel沒有此功能。 您如何在一頁上打印長列表數據以節省紙張?

用公式在一頁上打印長列

使用VBA代碼在一頁上打印長列

使用Kutools for Excel在一頁上打印長列

Office選項卡在Office中啟用選項卡式編輯和瀏覽,並使您的工作更加輕鬆...
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
  • 重用任何東西: 將最常用或最複雜的公式,圖表等添加到您的收藏夾中,並在將來快速重用它們。
  • 超過20種文字功能: 從文本字符串中提取數字; 提取或刪除部分文字; 將數字和貨幣轉換為英文單詞。
  • 合併工具:將多個工作簿和工作表合二為一; 合併多個單元格/行/列,而不會丟失數據; 合併重複的行和總和。
  • 分割工具:根據價值將數據分割成多個工作表; 一本工作簿可轉換為多個Excel,PDF或CSV文件; 一列到多列。
  • 跳過粘貼 隱藏/過濾的行; 計數與求和 按背景色; 向多個收件人批量發送個性化電子郵件。
  • 超級過濾器: 創建高級過濾方案並應用於任何工作表; 分類 按星期,日期,頻率等 篩選 用粗體,公式,註釋...
  • 超過300個強大的功能; 適用於 Office 2007-2021 和 365; 支持所有語言; 在您的企業或組織中輕鬆部署。

箭頭藍色右氣泡 用公式在一頁上打印長列

在這裡,我可以為您介紹解決這個問題的長公式,請按照以下步驟操作:

1。 在活動工作簿的新工作表中,輸入公式 =IF(OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)="","",OFFSET(Sheet1!$A$1,(COLUMN()-1)*45+ROW()-1,0)) 進入單元格A1。

筆記: Sheet1 是具有要列的長列表的工作表。

45 是要在列中列出數據的行號。

它們都是變量,您可以根據需要進行更改。

2。 然後選擇單元格A1,並將填充手柄向下拖動到第45行,然後繼續將填充手柄向右拖動直到顯示數據為止。 長列已分為幾列以適合新工作表中的一頁。 看截圖:

文檔打印長列1


箭頭藍色右氣泡 使用VBA代碼在一頁上打印長列

下面的VBA代碼還可以幫助您將一長串數據分為幾列,以便您可以打印數據並節省紙張。

1。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications 窗口。

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 鍵運行此代碼,然後在彈出的對話框中選擇要分割的列表數據,請參見屏幕截圖:

文檔打印長列2

4。 點擊 OK,然後輸入要劃分的列數。 看截圖:

文檔打印長列3

5。 並點擊 OK,長列已在新工作表中分為五列。 查看屏幕截圖:

文檔打印長列4 -2 文檔打印長列5

箭頭藍色右氣泡 使用Kutools for Excel在一頁上打印長列

長公式和VBA代碼都可能對您來說很困難,在這裡,我可以向您介紹一種解決此問題的簡便方法。 Excel的Kutools打印多列 功能可以幫助您將長列快速分為幾列,以便合理地打印它們。

Excel的Kutools 包括300多個便捷的Excel工具。 30天免費試用,不受限制。 立即獲取.

安裝Kutools for Excel之後,可以執行以下步驟:

1。 點擊 企業 > 打印多列,請參見屏幕截圖:

文檔打印長列6

2。 在 打印多列 對話框:

  • 點擊第一個 文檔按鈕 按鈕選擇範圍的標題,然後單擊第二個 文檔按鈕按鈕以選擇要劃分的列。
  • 然後指定每頁要放入的行數 每頁打印的行數,然後在下一頁輸入所需的列數 段數。 看截圖:

文檔打印長列7

3。 然後點擊 OK,長列表數據已在頁面中分為五列。 查看屏幕截圖:

文檔打印長列8 -2 文檔打印長列9

筆記:

1.標題將添加到每一列之前。

2.如果您檢查 使用活動表創建鏈接 選項,新的工作表數據可以鏈接到源數據。

如果您想進一步了解此功能,請單擊 打印多列.


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (13)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
您好,我有一個與第二個選項“使用 VBA 代碼在一頁上打印長列”相關的問題。 如果我的範圍內有多於一列,我該如何使用相同的代碼。 假設“$A$2:$C$118”的範圍,我該怎麼做。 謝謝。
網站主持人對此評論進行了最小化
謝謝你提供信息! 它非常有用且易於使用 - 即使對於缺乏強大計算機技能的人來說也是如此(我使用了第一種方法)
網站主持人對此評論進行了最小化
在互聯網上搜索了幾個小時後,我偶然發現了這一點。 它正是我想要的。 幹得好,感謝您抽出時間來做這件事。
網站主持人對此評論進行了最小化
尊敬的先生,感謝您的工作,此 VBA 代碼對我的工作非常有幫助,我很高興在幾秒鐘內完成我的任務。 謝謝你。 ……
網站主持人對此評論進行了最小化
您可以使用一個簡單的公式 =OFFSET(Sheet1!$A$1,(ROW()-2)*5+COLUMN(),0) 讓數據在 5 列中水平流動。 然後您可以選擇頁面大小,在每頁上打印第一行等。簡單,整潔,沒有VBA
網站主持人對此評論進行了最小化
有沒有辦法修改這個公式以使用 3 列而不是 1 列?
網站主持人對此評論進行了最小化
我也會對這樣的解決方案感興趣。
網站主持人對此評論進行了最小化
這個公式去哪裡了? 我正在嘗試在多行佈局的一頁上打印多行和多列。 與此類似:

約翰史密斯第一周
約翰史密斯第一周
約翰·史密斯總計


我有超過 100 行,最多 IJ
網站主持人對此評論進行了最小化
謝謝! 該公式無縫運行!
網站主持人對此評論進行了最小化
或者,您可以復製表格,然後將其粘貼到 Word 文檔中,其中包含您想要的任意數量的列。
網站主持人對此評論進行了最小化
我有一列包含 10,000 個數字,VBA 宏將在幾頁上提供一個表格。 但是,我希望每一頁都按數字排序,而不是按列排序。 任何幫助表示讚賞。
網站主持人對此評論進行了最小化
我有一列包含 10,000 個唯一數字的列,所有數字均已排序。 VBA 代碼提供了一個表格,但列是單獨排序的。
我希望每一頁都按數字排序,以便逐頁跟踪數據。 歡迎提出任何建議。
基思
網站主持人對此評論進行了最小化
你好,帕特森,
也許下面的 VBA 代碼可以幫你一個忙:
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



請嘗試,希望對您有所幫助!
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護