excel - 如何在最近一个会计月之前打开文件?
问题描述
我有一行代码可以根据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 月的第一周)
是否有一种简单的方法可以更新我的代码以仅引用保存在我指定的文件路径中的最近一个月?
解决方案
您必须扫描目录中的所有文件才能找到最新的
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