excel 宏 代码

来源:百度知道 编辑:UC知道 时间:2024/05/03 07:59:06
我想实现一种效果,听说用宏可以实现,麻烦哪位大师帮帮忙。

我执行的效果是 一个excel表格,打印出来的效果是 在表格的第二页前面显示第一页的前5行,在第四页的前面显示第三页的前5行,以此类推。 说白了就是单数页的前五行内容在单数页+1的双数页中显示。主要是好多页,复制粘贴太慢了。谢谢!

请大师们赐教,谢谢!

如果不明白我描述的意思,请留言,谢谢!
shuhua0715 你说的正是我想要的。每个人的单独的表很乱,但是每个人的表都是一样的,行数都一样。请问怎么解决。谢谢!麻烦您写下代码。结束的时候追加分数!

打印有关的过程仅有
Private Sub Workbook_BeforePrint(Cancel As Boolean)
End Sub
正如楼上所说,它是BeforePrint,不能处理中间数据。

但可以事先复制好数据再打印,注意先备份。
假设200行,每20行分页,按你的要求,则1-5行插入到20行之后;然后46-50行(原41-45行)插入到65行(原60行)之后;以此类推。可以用程序实现,但若原分页不规则,则只好手动操作。
等你补充问题。

Sub sss()
x = ""
k = 0
For i = 1 To 9 Step 2
x = (i-1) * 20 + k * 5 + 1 & ":" & (i-1) * 20 + 5 + k * 5
Rows(x).Select
Selection.Copy
Rows(20 * i + k * 5 + 1).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
k = k + 1
Next
End Sub

此代码是假设共200行数据每20行分页,分10页,原第1,3,5,7,9页的前5行依次复制到原2,4,6,8,10页前面。

目前宏实现这个功能还是有困难的,反正我个人试了一下,行不通!
标题行,只能使用PrintTitleRows一次性定义!
在打印机打印到第3页时,通过PrintTitleRows重新设置标题行,但是打印机的数据是先发送的,即使更改,打印出来的还是未更改之前的!

我建议,你在打印选项中有一项,将行或列作为标题行列打印!然后打印第1页和2页时,将其设置为标题行!
打印完1和2页后,,再设置一下标题行!再打印第三页和第四页!

目前宏可以实现更改,但是主要原因是打印机的传输方式,都事先准备好数据后,根据准备的数据发