Excel 中的宏以 ISO-8601 格式添加日期

Excel 中的宏以 ISO-8601 格式添加日期

出于某种原因,当我插入日期时,Excel 会强制我使用我的区域作为页脚。但是,当工作表打开时,它也不会自动更新。如果没有格式化,这是一个相当微不足道的问题,但是格式化文本是有问题的,而且我不确定如何解决这个问题,因为所有引号似乎都是强制性的。

Private Sub Workbook_Open()
    'you need to get the font to size 6, use calibri, use a light grey #DBDBDB perhaps and use ISO-8601
    ActiveSheet.PageSetup.RightFooter = "&""Calibri""&6" & DBDBDB & Format(Now, "yyyy-mm-dd")
End Sub

现在工作表的背景中似乎也有一个数字。
在此处输入图片描述

答案1

经过多次尝试和失败,我终于找到了这个sub,你可以将相关部分粘贴到你自己的代码中。如你所见,我使用Chr(34)双引号代替双引号来构造字符串,因为我认为这会增加可读性,但这只是个人喜好。此外,你会注意到我将存储string在一个变量中,这不是绝对必要的,但当你想在调试消息中使用它时会很有帮助,就像我在中所做的那样sub。我发现在这种情况下,能够看到的样子会有所帮助string,因为跟踪所有引号可能有点困难,正如你已经注意到的那样。

我不能完全确定您在自己构建字符串时哪里出了问题,但似乎在定义字体颜色的区域周围缺少一些引号,以及&K需要在其十六进制值之前添加的引号。

作为参考,我使用了这个 MSDN 页面帮助找到页眉和页脚的正确格式代码。

Private Sub test()
  'you need to get the font to size 6, use calibri, use a light grey #DBDBDB perhaps and use ISO-8601
  Dim s As String
  s = "&" & Chr(34) & "Calibri" & Chr(34) & " &6 &KDBDBDB " & Format(Now, "yyyy-mm-dd")
  ActiveSheet.PageSetup.RightFooter = s
  Debug.Print s
End Sub

相关内容