excel 宏记录

'作者:鹏少的自留地
'时间:2022-04-02
'ver:1.0
'未实现功能:行高按A4纸和边距自动调整

Sub autopage()
'×冻住首行,方便查看
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True

'【1】初始化清除原来页面的打印区域和分页
'==================
'重置所有分页,方便再分页
ActiveSheet.ResetAllPageBreaks
'重置所有打印区域,方便再分页
ActiveSheet.PageSetup.PrintArea = ""

'【2】设置打印标题行,然后除去标题行后开始按行数据分页。
'设置第n行为打印标题,默认为1
Dim n
n = 1
ActiveSheet.PageSetup.PrintTitleRows = "$1:$" & n

'处理的行数,最好获得当前行数,默认999行
Dim r
r = 999

'按某列的数据分页,默认第1列
Dim c
c = 1

'除去打印标题的前n行,第n行后开始处理行数据,发现行数据不同,则插入分页符,达到分页效果
Dim x
For x = n + 1 To r
If Cells(x + 1, c) <> Cells(x, c) Then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(x + 1, c)

End If
Next x

'【3】实现自动调整行高

End Sub

 

 

 

获得页面的总页数

Sub Macro1()

HorizBreaks = Worksheets(1).HPageBreaks.Count
HPages = HorizBreaks + 1

VertBreaks = Worksheets(1).VPageBreaks.Count
VPages = VertBreaks + 1

NumPages = HPages * VPages

MsgBox HPages & "--" & VPages & "--" & NumPages

End Sub

暂无评论

请到【后台 - 用户 - 我的个人资料】中填写个人说明。

发表评论