0

我只是想知道是否有一种简单的方法可以在 Excel 中使函数“now()”仅在对工作簿进行修改时工作,而不是在打开工作簿时工作。

4

1 回答 1

0

看看这个:

http://www.extendoffice.com/documents/excel/954-excel-created-last-modified-time.html#three

并尝试使用第二个宏:

Sub Workbook_Open()
Range("A2").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Last Save Time"), "short date")
End Sub

将 A2 替换为您要放入最后修改时间的单元格。

您还可以添加:

Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function

然后调用:

=ModDate()

编辑:

您还可以使用: FileDateTime()

http://www.techonthenet.com/excel/formulas/filedatetime.php

您必须弄清楚如何让文件引用自身。

但请记住,文件是通过打开来更改的,因此它也可能是当前时间。有关这方面的更多信息,请参阅:

http://support.microsoft.com/kb/826741

所以 NOW() 可能就是你所拥有的。此外,您可以在程序文件中搜索 Excel 的组件,但如果 NOW 以二进制形式编写,则可能无法更改。

然而...

据微软称,

让您的自定义功能随处可用

要使用自定义函数,必须打开包含您在其中创建函数的模块的工作簿。如果该工作簿未打开,您会得到 #NAME? 尝试使用该功能时出错。即使工作簿已打开,如果您在不同的工作簿中使用该函数,也必须在函数名称前加上该函数所在的工作簿的名称。例如,如果您在名为 Personal.xls 的工作簿中创建名为 Discount 的函数,并从另一个工作簿中调用该函数,则必须编写 =personal.xls!Discount(),而不仅仅是 =Discount()。

您可以通过从“插入函数”对话框中选择自定义函数来节省一些击键(以及可能的键入错误)。(您的自定义函数出现在用户定义的类别中。)让您的自定义函数始终可用的一种更简单的方法是将它们存储在单独的工作簿中,然后将该工作簿作为加载项(XLA 文件)保存在 XLStart 中文件夹。(XLStart 文件夹是包含 Excel 文件的文件夹的子文件夹。当您启动 Excel 时,程序会打开它在 XLStart 中找到的所有文档。)要将工作簿另存为加载项,请选择文件、另存为(或文件、节省)。然后从文件类型列表中选择 Microsoft Excel 加载项。

如果您的用户定义函数存储在内存中的 XLA 文件中,则在调用函数时不必指定该文件的名称。如果 XLA 文件保存在 XLStart 文件夹中,则无论何时运行 Excel,它都会出现在内存中。

http://office.microsoft.com/en-us/excel-help/creating-custom-functions-HA001111701.aspx

因此,似乎暗示,只要用户定义的函数在该工作簿中,无论文件在哪里,它们都应该可以正常工作。

希望能给你答案。

于 2013-10-30T16:04:51.543 回答