Excel宏实现文件最后保存日期显示失败:返回#Name错误求助
解决Excel获取最后保存日期宏的#Name错误问题
原代码的问题点
- 函数未给返回值变量
LastSaved赋值,反而用了未声明的LastSavedTimeStamp变量,导致Excel无法识别函数返回结果,触发#Name错误。 - 直接用
ActiveWorkbook可能在其他工作簿调用函数时获取错误的保存时间。 - 没有处理属性不存在的异常情况,容易导致函数崩溃。
修复后的代码
Option Explicit ' 强制变量声明,避免拼写错误 Function LastSaved() As Date On Error Resume Next ' 使用ThisWorkbook指向宏所在的工作簿,结果更可靠 LastSaved = ThisWorkbook.BuiltinDocumentProperties("Last Save Time") ' 处理属性不存在的情况,返回默认日期 If Err.Number <> 0 Then LastSaved = #1/1/1900# Err.Clear End If On Error GoTo 0 End Function
额外注意事项
- 确保函数存放在标准模块中(右键VBA工程→插入→模块),如果放在工作表或ThisWorkbook模块里,单元格调用时会出现#Name错误。
- 若你的Excel区域设置不同,可能需要调整内置属性名称,比如部分版本是
"Last Saved Time",可以替换测试。
内容的提问来源于stack exchange,提问作者mattmc513
相关产品推荐
相关产品推荐

