首页 > 解决方案 > 如何在最近一个会计月之前打开文件?

问题描述

我有一行代码可以根据dt我指定的字符串打开工作簿。

Const filename = "Labor_Data_"
Const basepath = "C:\Users\CDL File"
Dim wbPreviousData as workbook
Dim dt As String: dt = Format(DateAdd("m", -1, Now), "mm_yyyy")

然后我打开前几个月的文件:

Set wbPreviousData = Workbooks.Open(basepath & "\" & filename & dt & ".xlsx")

但我意识到我公司的财务日历有时可以跨越 5 周,例如(3 月的最后一周 - 5 月的第一周)

是否有一种简单的方法可以更新我的代码以仅引用保存在我指定的文件路径中的最近一个月?

标签: excelvba

解决方案


您必须扫描目录中的所有文件才能找到最新的


Sub findlatest()

    Const filename = "Labor_Data_"
    Const basepath = "C:\Users\CDL File"

    Dim file As String, absfile As String
    Dim latest As String, ts As Double, tsmax As Double

    file = Dir(basepath & "\" & filename * "*")
    Do While Len(file) > 0

       ' check timestamp
       absfile = basepath & "\" & file
       ts = CDbl(FileDateTime(absfile))

       If ts > tsmax Then
          tsmax = ts
          latest = file
       End If

       file = Dir
    Loop

    Debug.Print latest

End Sub


推荐阅读