在创build时在Excel模板中插入当前date

我在这里为用户创build一个excel模板(* .xlt),我想要做的事情之一就是在创build一个新文档时插入当前date(即,当他们双击文件时Windows资源pipe理器)。 我该怎么做呢?

更新:我应该补充说,我宁愿不使用任何vba(macros)。 如果这是唯一的select,那就这样吧,但我真的想避免强迫我的用户记住点击一些“允许macros内容”button。

您可以使用工作表函数= TODAY(),但显然这将更新到当前date重新计算工作簿。

我能想到的唯一的其他方法是,如1729所述,编写Workbook_Open事件:

Private Sub Workbook_Open() ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = Date End Sub 

您可以通过数字签名模板(在VBA IDE Tools | Digital Signature …中)来减less每次需要用户接受macros的问题,并select一个数字证书,但是您需要从商业authentication中获得证书权限(请参阅http://msdn.microsoft.com/en-us/library/ms995347.aspx )。 用户在第一次运行模板时需要select始终信任此证书,但此后不会再提示。

您可以编辑excel的默认模板 –

XLSTART目录中有一个名为Book.xlt的文件,通常位于C:\Program Files\Microsoft Office\Office\XLStart\

您应该可以添加一个名为Workbook_Open的macros

 Private Sub Workbook_Open() If ActiveWorkBook.Sheets(1).Range("A1") = "" Then ActiveWorkBook.Sheets(1).Range("A1") = Now End If End Sub 

我的VBA有点生疏,但你可能会发现这样的作品。

要避免VBA,并且如果您认为用户可能按照说明进行操作,则可以要求他们复制date,然后粘贴special-> values来设置date,以便将来不会更改。