问:平时设计表格是最害怕的是什么?
答:肯定是糊涂的小伙伴把里面该改的不该改的参数都给你改了,完了还贴心的给你按个保存,致使各位创作者欲哭无泪!!!所以各大网站都在手把手教你怎么保护自己的作品,这个前面的文章里也有讲述,这里就不copy啦。今天主要想保护的是页眉页脚,让别人打印时不能随心所欲,哈哈哈!!!
1、 工具
想达到这个目的必须要有VBA的加持,下面先解释一下用代码表示页眉页脚中的各项参数
A:工作表名称
F:工作簿名称
Z:工作簿路径
D:日期
T:时间
P:页码
N:总页码
2、 代码及解释
Sub headerfooter()
With ActiveSheet.PageSetup
.PrintArea = "" '打印区域设置为全部打印
.LeftHeader = "&""Arial""&B&10 &A" '左边页眉设置为工作表名称,字体Arial,字号10,加粗
.CenterHeader = "&""Arial""&B&10 &F" '中间页眉设置为工作簿名称,字体Arial,字号10,加粗
.RightHeader = "&""Arial""&B&10 &D &T" '右边页眉设置为时间和日期,字体Arial,字号10,加粗。如果想固定格式的话用后面的代码代替哦.RightHeader ="&""Arial,Bold" Format(Date, "mm/dd/yyyy") & Chr(10) & Format(Time, "hh:mm")
.Leftfooter= "&""Arial,Bold""&10 &P/&N" '左边页脚设置为页码和总页码,字体Arial,字号10,加粗
.Centerfooter="&""Arial,Bold""&10 &Z" '中间页脚设置为文件路径,字体Arial,字号10,加粗
End With
End Sub
下面我们运行一下看看效果
首先页眉
然后页脚
完美!!!
3、 如果想在页眉页脚的内容前面加点说明可以换下面一套
Sub headerfooter()
With ActiveSheet.PageSetup
.PrintArea = ""
.LeftHeader = "&""Arial""&B&10 &A"
.CenterHeader = "&""Arial""&B&10 & Spreadsheet Name: &F"
.RightHeader = "&""Arial,Bold""&10 & Print Time: &D&T" '需要调整格式就用这个.RightHeader = "&""Arial,Bold""&10 & Print Time:" & Format(Date, "mm/dd/yyyy") & Chr(32) & Format(Time, "hh:mm")
.LeftFooter = "&""Arial,Bold""&10 & Page: &P/&N"
.RightFooter = "&""Arial,Bold""&10 & Location: &Z"
End With
End Sub
验收时刻来啦!!!
页眉
页脚
4、 再说一下打印页面的设置
PS:下面这些可能不会全部上场,大家挑选使用!
'打印页面边距的大小设置
.LeftMargin = Application.CentimetersToPoints(1.8)
.RightMargin = Application.CentimetersToPoints(1.8)
.TopMargin = Application.CentimetersToPoints(2.8)
.BottomMargin = Application.CentimetersToPoints(2.3)
.HeaderMargin = Application.CentimetersToPoints(0.9)
.FooterMargin = Application.CentimetersToPoints(0.9)
'打印效果设置
.PrintComments = xlPrintNoComments '不打印表格中的备注
.PrintQuality = 1200 '打印质量
.CenterHorizontally = True '水平居中
.CenterVertically = True '垂直居中
.Orientation = xlLandscape '打印横板,或者用后面代码.pagesetup.orientation=1 1为横板,2为竖版
.PaperSize = xlPaperA4 '打印A4纸,或者用后面代码 .pagesetup.papersize=9 9为A4,8为A3
.pagesetup.zoom=80 '打印时页面缩放比例
.printout copies:=1, Collate:=True '双面打印
五、最后,将所有的代码写好后在workbook部分设置打印时调用,将VBA设置好密码,那么你的页眉页脚信息就安全啦!管它熙熙攘攘阳关道,你的页眉页脚就是稳如磐石不移!!!
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.IsAddin = True
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call 模块1.headerfooter
End Sub
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = False
End Sub
首先,我们在打印的时候把页眉页脚全部删掉
干干净净
然后点击打印,这里用PDF示范。打印出来的PDF是不是页眉页脚都回来了,还是你的那一套哦!所以,别担心,让他们折腾去吧!