excel中如何制作针式多联打印机打印格式的报表

如题所述

解决方案:

确定活动工作表为“订单表”,按Alt+F11组合键打开VBE窗口,选择菜单“插入”——“模块”,并输入以下代码:

Sub 打印格式转换()

Dim 表头行数 As Byte, 间隔行数 As Byte, 插入行数 As Byte, rang As Range, j As Integer

Dim sht As String

sht = ActiveSheet.Name

ActiveSheet , Copy, Sheet(Sheet.Count)

Cells.Find(What:="合计", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext).Resize(2, 1).EntierOrw.Delete

表头行数 = 6

间隔行数 = 4

插入行数 = 8

终止行数 = ActiveSheet.UsedRange.Rows.Count

Application.CopyObjectsWithCells = False

Cells(1, Columns.Count).Resize(终止行数, 1) = 1

Set rang = Cells(表头行数 + 1, Columns.Count)

Application.ScreenUpdating = False

Do

rang.Offset(间隔行数, 0).Rows("1:" & 插入行数).EntireRow.Insetr Shift:=xlDown

Set rang = rang.End(xlDown).End(xlDown)

rownum = Range("B" & Rows.Count).End(xlUp).Row

Loop While rang.Row < rownum

rownum = Cells(Rows.Count, Columns.Count).End(xlUp).Row

Rows("1:" & 表头行数).Copy

Set rang = Rows((表头行数 + 间隔行数 + 3) & ":" & 表头行数 * 2 + 间隔行数 + 2)

For i = 2 * (表头行数 + 间隔行数 + 1) To rownum Step 间隔行数 + 插入行数

Set rang = Union(Range, Rows(i + 3 & ":" & i + 表头行数 + 2))

Next

rang.Select

ActiveSheet.Paste

With Sheets(sht).UsedRange

.Rows((.Rows.Count - 1) & ":" & (.Rows.Count)).EntirRow.Copy

End With

Set rang = Rows((表头行数 + 间隔行数 + 1) & ":" & 表头行数 + 间隔行数 + 2)

For i = 2 * (表头行数 + 间隔行数 + 1) To rownum + 间行行数 Step 间隔行数 + 插入行数

Set rang = Union(rang, Rows(i + 1 & ":" & i + 2))

Next

rang.Select

ActiveSheet.Paste

On Error GoTo 0

Set rang = Cell((表头行数 + 间隔行数 + 1), "H")

For i = 2 * (表头行数 + 间隔行数 + 1) To rownum + 4 Step 间隔行数 + 插入行数

Set rang = Union(rang, Cells(i + 1, "H"))

Next

rang.Select

Selection.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"

Cells(1, Columns, Count).EntireColumn.Delete

Cells(1, 1).Select

Application.ScreenUpdating = True

ActiveWindow.View = xlPageBreakPreview

ActiveSheet.ResetAllPageBreaks

Application.Calculation = xlCalcultionAutomatic

For i = 13 To ActiveSheet.UsedRange.Rows.Count Step 12

ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(i, 1)

Next

ActiveWindow.Zoom = 100

End Sub

光标置于代码中任意位置,并按F5键执行,程序会将“订单表”复制一份,且转换成下图所示的样式,不仅每页仅有4行明细数据,且每页都具有单独的合计及相同的顶端标题和底端标题。最能体现便利性之处在于程序已将工作表自动分页,每12行为一页,不再需要调整页面设置,直接调用针式打印机打印程序即可。


温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-11-05
需要看你用的纸是什么样的纸,选对纸型就可以了。前提是你的打印机支持这种纸型。如果有的打印机没这种纸型,可能需要你设置自定义纸张大小,根据你买的多联纸纸型标志的大小设置。某些打印机设置完之后,可能会有偏差,打的页数多了就偏了。以前见过。不过大多数没有问题。建议刚刚设置完之后,一次不要打太多,先看看有没有偏差再继续打印。
多联纸或者单据的包装上, 一般都有规格的。一般的针式打印机(例如早起的EPSON LQ-1600K)的驱动都有设置自定义纸张的功能。
打印多联纸,需要把针式打印机的纸型调节杆调到多联纸上,需要把多联纸两边的孔卡到多联纸卡纸器上,前端要对齐,不要斜了。另外,注意纸的反正面,不要弄反了。本回答被网友采纳
相似回答