在创建时在Excel模板中插入当前日期

时间:2008-09-02 20:56:13

标签: excel templates

我正在为这里的用户构建一个excel模板(* .xlt),我要做的其中一件事就是让它在创建新文档时插入当前日期(即双击时Windows资源管理器中的文件)。我该怎么做?

更新:我应该补充一点,我不想使用任何vba(宏)。如果这是唯一的选择,那就这样吧,但我真的想避免强迫我的用户记住点击一些'允许宏内容'按钮。

3 个答案:

答案 0 :(得分:4)

您可以使用工作表函数= TODAY(),但显然每当重新计算工作簿时,这都会更新到当前日期。

正如1729所说,我能想到的另一种方法是编写Workbook_Open事件的代码:

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

每次通过对模板进行数字签名(在VBA IDE工具|数字签名...中)并选择数字证书,您可以减少需要用户接受宏的问题,但是,您需要从中获取证书商业认证机构(见http://msdn.microsoft.com/en-us/library/ms995347.aspx)。用户需要选择在第一次运行模板时始终信任此证书,但此后,将不会再次提示他们。

答案 1 :(得分:2)

您可以编辑Excel的默认模板 -

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

您应该能够添加一个名为Workbook_Open

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

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

答案 2 :(得分:0)

要避免使用VBA,并且您认为您的用户可能会按照说明操作,您可以要求他们复制日期,然后粘贴special->值来设置日期,以便将来不会更改。