VBA修改页眉页脚字体及字号时保留内容的实现问题
VBA修改页眉页脚字体并保留原有内容的解决方案
你的问题核心是直接覆盖了页眉页脚属性值,没有保留原有内容。当前代码只设置了格式代码&""Arial,Regular""&10,但没有拼接原有页眉的内容,所以原有文本被清空。
正确的做法是先获取当前页眉/页脚的内容,再将格式代码作为前缀拼接后重新赋值,这样格式会应用到所有原有内容上。
完整实现代码
Application.PrintCommunication = False With ActiveSheet.PageSetup ' 处理左、中、右页眉 .LeftHeader = "&""Arial,Regular""&10" & .LeftHeader .CenterHeader = "&""Arial,Regular""&10" & .CenterHeader .RightHeader = "&""Arial,Regular""&10" & .RightHeader ' 处理左、中、右页脚(按需启用) .LeftFooter = "&""Arial,Regular""&10" & .LeftFooter .CenterFooter = "&""Arial,Regular""&10" & .CenterFooter .RightFooter = "&""Arial,Regular""&10" & .RightFooter End With Application.PrintCommunication = True
关键说明
- 页眉页脚格式规则:Excel页眉页脚使用
&开头的控制代码,&""字体名称,样式""用于设置字体,&字号用于设置大小。将格式代码放在内容前,会对后续所有文本生效。 - 避免内容丢失:必须通过
.LeftHeader等属性获取原有内容,再与格式代码拼接后重新赋值,而不是直接替换为格式代码。 - PrintCommunication的作用:关闭打印通信可以加快代码执行速度,避免Excel频繁刷新界面,建议保留该设置。
内容的提问来源于stack exchange,提问作者burnettall
相关产品推荐
相关产品推荐

