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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top