在Excel中,如何仅在最后一页添加页脚?

时间:2015-03-09 20:06:06

标签: excel vba

更新3/10/2015 @ 4:03 PM

我试图仅在Excel中向最后一页添加页脚,但是疯狂到没有任何选项可以在程序中执行此操作...您只能指定自定义页脚第一页,没有别的!

我认为我实现这一目标的唯一方法是使用VBA宏,但不幸的是,任何有关此功能实现的在线信息都很容易超过10年,并没有真正帮助。

由于页脚选项的限制,我想我会尝试不同的方法,即在最后一页的底部添加一行。

我有以下代码......

Sub pageBreak()

LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

rows(LastRow & ":200").Select
Selection.Delete Shift:=xlUp

ActiveSheet.PageSetup.PrintArea = "$A$1:$M$" & LastRow + Unknown Value

HowMany = ActiveSheet.HPageBreaks.Count

WhatRow = ActiveSheet.HPageBreaks(HowMany).Location.Row - 4

Range("A" & CStr(WhatRow) & ":L" & CStr(WhatRow)).Merge

rows(WhatRow).RowHeight = 54
rows(WhatRow).VerticalAlignment = xlCenter
rows(WhatRow).HorizontalAlignment = xlCenter
rows(WhatRow).WrapText = True

Range("A" & CStr(WhatRow)) = Worksheets("Sheet2").Range("A1")

End Sub

这几乎可行,但问题在于它取决于是否存在分页符,所以让我们说你的内容在第2页结束,你必须手动下拉打印区域以显示第3页,所以在2/3之间有一个分页符然后代码可以放在第2页的上面。所以在我的代码中,它显示Unknown Value,这必须是LastRow和触发之间所需的数量下一页休息。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:0)

您不需要VBA,只需选择您想要的工作表并转到页面设置,选择页眉/页脚选项卡,然后单击"自定义页眉"或"自定义页脚"按钮。它只会将其分配给活动工作表。

答案 1 :(得分:0)

我最终自己解决了这个问题,所以谢谢你们!

以下是那些可能好奇的人的最终代码......

Sub addDisclaimer()

LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

rows(LastRow + 1 & ":200").Select
Selection.Delete Shift:=xlUp

ActiveSheet.PageSetup.PrintArea = "$A$1:$M$" & LastRow + 50

HowMany = ActiveSheet.HPageBreaks.Count

WhatRow = ActiveSheet.HPageBreaks(HowMany).Location.Row - 4

Range("A" & CStr(WhatRow) & ":L" & CStr(WhatRow)).Merge

rows(WhatRow).RowHeight = 54
rows(WhatRow).VerticalAlignment = xlCenter
rows(WhatRow).HorizontalAlignment = xlCenter
rows(WhatRow).WrapText = True

Range("A" & CStr(WhatRow)) = Worksheets("Sheet2").Range("A1")

FinalRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

ActiveSheet.PageSetup.PrintArea = "$A$1:$M" & FinalRow

Range("A1").Select
Application.CutCopyMode = False

End Sub