更新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和触发之间所需的数量下一页休息。关于如何做到这一点的任何想法?
答案 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