我在这里为用户构建一个excel模板(* .xlt),我想做的一件事是让它在创建新文档时插入当前日期(即,当他们双击文件时Windows资源管理器)。我该怎么做呢?
更新:我应该补充一点,我不想使用任何 vba(宏)。如果这是唯一的选择,那就这样吧,但我真的很想避免强迫我的用户记住点击一些“允许宏内容”按钮。
您可以使用工作表函数 =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)。用户在第一次运行模板时需要选择始终信任此证书,但此后将不再提示他们。
您可以编辑 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 有点生锈,但你可能会发现这样的东西有效。
为了避免使用 VBA,并且如果您认为您的用户可能会遵循说明,您可以要求他们复制日期,然后粘贴特殊-> 值来设置日期,以便将来不会更改。