Excel VBA脚本设置右页脚日期异常:字号不符、首数字截断
修正后的VBA脚本及问题解决
问题根源
- 原脚本错误将日期设置到右页眉(RightHeader),而非需求的右页脚(RightFooter)。
- 直接调用
Range.Value获取日期会返回原始数值,丢失单元格设置的短日期格式。 - 格式代码与日期首数字拼接导致Excel误解析字号:例如日期以
1开头时,&2+10/05/2024会被识别为&21(21号字),进而截断日期首数字。
修正后的代码
Sub InsertCellValueIntoFooter() Dim Customer As String Dim Request As String Dim SubDate As String ' 获取单元格B5显示的短日期文本(保留格式) SubDate = Range("$B$5").Text Customer = Range("$B$1").Value Request = Range("$B$6").Value ' 设置右页脚:Calibri字体、20号字号,用非-breaking空格避免数字拼接问题 ActiveSheet.PageSetup.RightFooter = "&""Calibri""&20" & Chr(160) & SubDate ' 保留原左页脚设置(若无需可删除此行) ActiveSheet.PageSetup.LeftFooter = "&""Calibri""&20" & Customer & " " & Request End Sub
核心修改点
- 目标区域调整:替换
RightHeader为RightFooter,匹配需求的页脚位置。 - 格式保留:使用
Range.Text获取单元格已格式化的短日期文本,确保插入的日期样式与单元格一致。 - 避免字号误解析:插入
Chr(160)(非-breaking空格)分隔格式代码与日期内容,既不会显示可见空格,又能阻止Excel将日期首数字与字号数字拼接识别为新字号。
内容的提问来源于stack exchange,提问作者AzzileBz
相关产品推荐
相关产品推荐

