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应用程序 窗口。

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代码都可能对您来说很困难,在这里,我可以向您介绍一种解决此问题的简便方法。 Kutools for Excel打印多列 功能可以帮助您将长列快速分为几列,以便合理地打印它们。

Kutools for Excel 包括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保护