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

Insert current date in Excel template at creation

提问人:Joel Coehoorn 提问时间:9/3/2008 最后编辑:Joel Coehoorn 更新时间:6/3/2012 访问量:6274

问:

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

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

Excel 模板

评论


答:

2赞 1729 9/3/2008 #1

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

目录中有一个文件调用,通常位于Book.xltXLSTARTC:\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有点生锈,但您可能会发现这样的东西有效。

4赞 Graham 9/3/2008 #2

您可以使用工作表函数 =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)。用户在首次运行模板时需要选择始终信任此证书,但此后,将不再提示他们。

0赞 paulmorriss 9/4/2008 #3

为了避免 VBA,如果您认为您的用户可能会遵循说明,您可以要求他们复制日期,然后粘贴特殊>值来设置日期,以便将来不会更改。