分享

Excel应用实践04:分页单独打印Excel表中的数据

 L罗乐 2019-04-13

本文转载自公众号:完美Excel,作者:fanjy

excelperfect

在实际工作中,我们经常会遇到想将工作表中的数据(如下图1所示的“数据”工作表)导入到固定的表格(如下图2所示)中并打印。

1

2

上图1中的数据可能是我们陆续输入到工作表中的,可能是从多个工作表合并的,也可能是从其他地方例如网站上导入的。此时,想要以图2所示的格式打印每条数据信息。如果一行行数据分别录入,则费时费力,特别是遇到成百上千条数据时。

VBA最擅长解决这样的问题。

首先,在工作簿中创建一个名为“表格模板”的工作表,按打印的表格格式化,如下图3所示。

3

VBE中输入下面的程序代码:

Sub printAllDatas()

    '数据记录工作表变量

    Dim wksDatas As Worksheet

    '模板工作表变量

    Dim wksTable As Worksheet

    '数据记录工作表中最后一行变量

    Dim lngLastRow As Long

    '循环变量

    Dim i As Long

    '将工作表赋给相应的变量

    Set wksDatas = Worksheets('数据')

    Set wksTable = Worksheets('表格模板')

    '获取数据记录工作表最后一行行号

    lngLastRow = wksDatas.Range('A'& Rows.Count).End(xlUp).Row

    '遍历数据记录工作表中数据行

    '将相应数据填入模板工作表

    For i = 2 To lngLastRow

        '将数据工作表中的数据填入模板

        With wksDatas

            wksTable.Range('B3') =.Range('A' & i)

            wksTable.Range('F3') =.Range('B' & i)

            wksTable.Range('B4') =.Range('C' & i)

            wksTable.Range('D4') =.Range('D' & i)

            wksTable.Range('F4') =.Range('E' & i)

            wksTable.Range('B5') =.Range('F' & i)

            wksTable.Range('F5') =.Range('G' & i)

            wksTable.Range('B6') =.Range('H' & i)

            wksTable.Range('F6') =.Range('I' & i)

            wksTable.Range('B7') =.Range('J' & i)

            wksTable.Range('B8') =.Range('K' & i)

        End With

        '打印

        wksTable.PrintOut

    Next i

End Sub

运行代码,即可实现数据打印。

代码的图片版如下:

4

使用VBA,也很容易将数据按图3模板表格形式,拆分成独立的工作表。有兴趣的朋友可以试试。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多