获取date/时间工作簿已打开

我有一些代码需要检查电子表格的打开date。 不是它创build的date,也不一定是今天的date – 有些用户显然会将电子表格打开几天,并且只有在打印工作簿时才会运行此代码。

以前,我使用这个代码:

Dim FileSystem as Object Set FileSystem = CreateObject("Scripting.FileSystemObject") Debug.Print FileSystem.getFile(ThisWorkbook.Path & "\" & ThisWorkbook.Name).DateCreated 

这最初运作良好,但现在我遇到了另一个问题。 对于一些用户,它工作正常 – 他们正在通过受版权控制的服务器打开此电子表格,该服务器将副本下载到受保护的目录。 在这种情况下, .DateCreated表示他们从服务器上获取副本的date。 但是,其他用户打开工作簿通过Internet Explorer打开服务器上的文件的链接,它跳过受保护的目录。 对于这些用户,代码根本不起作用 – 通过链接打开电子表格并检查文件path,我得到以下结果:

 debug.print ThisWorkbook.Path Output: http://servername.com/serverfolder/ 

不出所料, FileSystem.getFile指向Web服务器而不是文件path时会崩溃。 我尝试使用ThisWorkbook.BuiltinDocumentProperties("Creation Date") ,但问题是,它给了我工作簿最初创build的date – 在这种情况下,一直在2005年。是否有任何简单的方法来获取工作簿打开的date和时间?

它存储在任何地方?

根据最终结果,你可以做一些简单的事情:

在一个单元格中input= now(),然后运行一个macros作为值复制和粘贴。

也许尝试在Workbook_Open事件中使用now()来存储在其中一个工作表中打开工作簿的date时间。 这确实使得没有人会改变价值的假设。

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