分页单独打印Excel表中指定行的数据

我只想打印其中的一行,或者从第m行到第n行的数据,这如何实现呢?
示例数据工作表、打印样式和要打印的表格模板工作表分别如下、和所示 。
将“数据”工作表(如所示)中的数据导入“表格模板”工作表(如所示)中并打印出来(如所示) 。

分页单独打印Excel表中指定行的数据

文章插图
数据工作表
分页单独打印Excel表中指定行的数据

文章插图
打印的样表
分页单独打印Excel表中指定行的数据

文章插图
表格模板工作表
使用输入框打印指定行数据
如果要打印指定的数据行,可以简单地使用Application对象的InputBox方法,用来让用户输入要打印的行号 。代码如下:
Sub printARowData()
‘数据记录工作表变量
Dim wksDatas As Worksheet
‘模板工作表变量
Dim wksTable As Worksheet
‘数据记录工作表中最后一行变量
Dim lngLastRow As Long
‘行变量
Dim lRow As Long
‘提示信息
Dim strPrompt As String
‘忽略错误
On Error Resume Next
‘将工作表赋给相应的变量
Set wksDatas = Worksheets(“数据”)
Set wksTable = Worksheets(“表格模板”)
‘获取数据记录工作表最后一行行号
lngLastRow = wksDatas.Range(“A”& Rows.Count).End(xlUp).Row
‘标题字符串
strPrompt = “请输入2-” & lngLastRow & “之间的数字”
‘获取要打印的行
lRow =Application.InputBox(Prompt:=strPrompt, _
Title:=”打印指定行”, _
Type:=1)
Debug.Print lRow
‘限定输入的数字在数据范围内
If lRow > 1 And lRow < lngLastRow + 1Then
‘将数据工作表中的数据填入模板
With wksDatas
wksTable.Range(“B3”) =.Range(“A” & lRow)
wksTable.Range(“F3”) =.Range(“B” & lRow)
wksTable.Range(“B4”) =.Range(“C” & lRow)
wksTable.Range(“D4”) =.Range(“D” & lRow)
wksTable.Range(“F4”) =.Range(“E” & lRow)
wksTable.Range(“B5”) =.Range(“F” & lRow)
wksTable.Range(“F5”) =.Range(“G” & lRow)
wksTable.Range(“B6”) =.Range(“H” & lRow)
wksTable.Range(“F6”) =.Range(“I” & lRow)
wksTable.Range(“B7”) =.Range(“J” & lRow)
wksTable.Range(“B8”) =.Range(“K” & lRow)
End With
‘打印
wksTable.PrintOut
Else
MsgBox “输入的行不存在!”
End If
End Sub
运行代码,弹出如所示的输入框,可在其中输入要打印数据所在的行号,实现数据打印 。
分页单独打印Excel表中指定行的数据

文章插图
在其中输入要打印数据所在的行号
代码的图片版如下:
分页单独打印Excel表中指定行的数据

文章插图
代码图片
使用用户窗体指定要打印的行数据范围
首先,设计用户窗体来获取用户输入的数值,如下所示 。用户窗体名为urfNum,在两个文本框
txtStartRow和txtEndRow中分别输入开始行和结束行的行号,单击名为cmdOK的确定按钮来打印 。
分页单独打印Excel表中指定行的数据

文章插图
:用户窗体设计
用户窗体模块代码:
Private Sub cmdOK_Click()
【分页单独打印Excel表中指定行的数据】

推荐阅读