You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA调用DateCreated属性获取的文件日期戳无法参与日期运算问题求助

错误原因&解决方案

  1. 首先修正内置函数调用错误
    VBA 中Now()是原生内置函数,不需要加Application.Function前缀,你写的Application.Function.Now()本身属于错误写法,直接调用Now()即可。
  2. 强制类型转换避免隐式格式不兼容问题
    DateCreated属性返回的是变体日期类型,部分场景下会被识别为字符串导致运算失败,用CDate()函数强制转换为日期类型即可正常参与运算。
  3. 更稳妥的日期差计算推荐使用DateDiff函数,避免日期格式兼容问题,适配不同系统区域设置的场景:
' 正确声明与计算示例
Dim FileDateStamp As Date
' 此处保留你之前获取FileDateStamp的赋值逻辑

' 方案1:直接日期运算
Dim FileAge As Double ' 运算结果单位为天,小数部分对应时分秒
FileAge = Now() - CDate(FileDateStamp)

' 方案2:DateDiff函数更稳定,按需指定返回单位
' 计算相差天数
FileAge = DateDiff("d", FileDateStamp, Now())
' 计算相差小时将第一个参数改为"h",相差分钟改为"n",相差秒改为"s"

其他说明

  • 你之前尝试的Dim FileDateStamp as Text写法错误,VBA 中文本类型关键字为String,字符串类型无法直接参与日期运算。
  • 你调用日期拆分的正确写法为DateSerial(Year(FileDateStamp), Month(FileDateStamp), Day(FileDateStamp)),可提取创建日期的纯日期部分,过滤时分秒信息。

内容的提问来源于stack exchange,提问作者RobinClay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 09:51:02