题
我正在为这里的用户构建一个 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,并且如果您认为用户可能会遵循说明,您可以要求他们复制日期,然后粘贴特殊 -> 值来设置日期,以便将来不会更改。
不隶属于 StackOverflow