我只想打印其中的一行,或者从第m行到第n行的数据,这如何实现呢?
示例数据工作表、打印样式和要打印的表格模板工作表分别如下、和所示。
将“数据”工作表(如所示)中的数据导入“表格模板”工作表(如所示)中并打印出来(如所示)。
数据工作表
打印的样表
表格模板工作表
使用输入框打印指定行数据
如果要打印指定的数据行,可以简单地使用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加载宏
Q:我看到过很多别人发布的Excel加载宏,能够提供一些额外的功能,或者是一些专门的功能,极大地扩展并方便Excel的使用。Excel加载宏是怎么开发出来的呢? A:下面以创建一个示例加载宏的完整过程来介绍如何构建自已的Excel加载宏。 第1步:确定目标 首先,我们需要确定加载宏应该执行的操作以及应具备的功能。
代码图片
使用用户窗体指定要打印的行数据范围
首先,设计用户窗体来获取用户输入的数值,如下所示。用户窗体名为urfNum,在两个文本框
txtStartRow和txtEndRow中分别输入开始行和结束行的行号,单击名为cmdOK的确定按钮来打印。
:用户窗体设计
用户窗体模块代码:
Private Sub cmdOK_Click()
‘数据记录工作表变量
Dim wksDatas As Worksheet
‘模板工作表变量
Dim wksTable As Worksheet
‘数据记录工作表中最后一行变量
Dim lngLastRow As Long
‘循环变量
Dim i As Long
‘开始行和结束行变量
Dim lStartRow As Long
Dim lEndRow As Long
‘将工作表赋给相应的变量
Set wksDatas = Worksheets(“数据”)
Set wksTable = Worksheets(“表格模板”)
‘获取数据记录工作表最后一行行号
lngLastRow = wksDatas.Range(“A”& Rows.Count).End(xlUp).Row
‘忽略错误
On Error Resume Next
‘获取数据值
lStartRow = CLng(txtStartRow.Text)
lEndRow = CLng(txtEndRow.Text)
If lStartRow > lEndRow Or lStartRow<2 or=”” lstartrow=””>lngLastRow Or lEndRow > lngLastRow Then
MsgBox “数字不符合要求!”
txtStartRow.Text = “”
txtEndRow.Text = “”
Exit Sub
End If
‘遍历数据记录工作表中数据行
‘将相应数据填入模板工作表
For i = lStartRow To lEndRow
‘将数据工作表中的数据填入模板
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
‘卸载用户窗体
Unload urfNum
End Sub
运行代码后,将出现如下所示的输入界面,可以在文本框中依次输入要打印的起始行行号和结束行行号,来打印处于这两行之间的数据。如果两个行号相同,则只打印该行数据。
:运行后要求输入数字的界面
下面是上述代码的图片版:
如何列出excel公式中引用的所有单元格
Q:Excel没有提供便捷的方法来找到所给单元格的所有引用单元格,虽然Range对象有一个Precedents属性,但只适用于引用单元格都在同一工作表上的情况。 例如,下所示的工作表Sheet1,在单元格A1中的公式为=B3 5,而单元格B3中的公式又引用了单元格D2和E2,单元格D2甚至引用了另一工作表Sheet2