上个月的召回格式

时间:2019-05-20 20:10:04

标签: excel vba

我正在尝试打开一个名称中带有上个月标题的文件。例如,文件名的格式如下:NAME year Month.xlsx。目前,我可以将其拉到1月,但是当前月份是5月,因此我需要4月。

在下面,我有仅在一月份提起的当前代码。我需要月份的格式为“ mm”。我已经运行了没有FileMonth = Month(Date - 30)的代码,该代码为我提供了前一个月的数字,但格式为一位数字而不是两位数。 (对于四月文件,它搜索编码为4而不是04)。当前代码的确搜索1月为01。就像我省略-30一样,它将把May作为05。

Dim Path As String
Dim FileYear As String
Dim FileMonth As String
FileYear = Year(Date - 30)
FileMonth = Format(Month(Date - 30), "mm")
Path = "C:\User\NAME " & FileYear & " " & FileMonth
Workbooks.Open (Path)

唯一的错误是提取了错误的文件。

2 个答案:

答案 0 :(得分:1)

编辑: 感谢Tony的注意!代码已更正以反映注释。

使用:

FileMonth = Format(Format(DateAdd("m", -1, Date), "mm"), "00")

使用30天的问题是,并非所有月份都有该金额

您可以简化所有操作:

Dim Path As String
Dim FileDate As String
FileDate = Format(DateAdd("m", -1, Date), "yyyy mm")
Path = "C:\User\NAME " & FileDate
Workbooks.Open (Path)

答案 1 :(得分:1)

使用:

FileMonth = Format((Date - 30), "mm")

谢谢, 哈菲兹