Excel VBA如何按文件的最新日期提取文件

我在D盘的data文件夹里面按日期每天放了一个叫namelist+年月日.xlsx的文件,这样这个文件夹里有很多类似名字的文件,我想用VB复制最新日期的那一个文件里she... 我在D盘的data文件夹里面按日期每天放了一个叫namelist+年月日.xlsx的文件,这样这个文件夹里有很多类似名字的文件,我想用VB复制最新日期的那一个文件里sheet2的内容,然后复制到当前表的sheet3里面?如何编写谢谢。 展开
 我来答
百度网友e1af404
推荐于2016-07-25 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.1万
采纳率:59%
帮助的人:4093万
展开全部

首先呢,得获取所有文件名称,然后呢,根据文件名称年月日部分挑出最新日期,再然后呢,根据最新日期生成文件名,再然后呢,进行复制。

注:你的源数据文件名和目录结构应该如图

样本文件见附件

代码如下

Sub test()
Dim pth As String, fn As String, ary(), tmpMax As Long, i As Integer
Dim wb As Workbook
pth = "D:\data\"    '设置路径
fn = Dir(pth & "*.xlsx")     '遍历该路径下的.xlsx文件
i = 0: tmpMax = 0
Do While fn <> ""
    If fn <> ThisWorkbook.Name Then
        i = i + 1
        ReDim Preserve ary(i)   '声明动态数组,在数组后面追加元素
        ary(i) = --Left(Right(fn, 13), 8)   '假设文件名称形式为“namelist20140918.xlsx”这样的格式,将年月日8位数装入数组
        If ary(i) > tmpMax Then tmpMax = ary(i)   '不断将找到的最大日期值放入变量tmpmax
    End If
    fn = Dir
Loop
Set wb = Workbooks.Open(pth & "namelist" & tmpMax & ".xlsx", , True)   '打开tmpmax指定的文件
wb.Worksheets("Sheet2").Cells.Copy ThisWorkbook.Worksheets("Sheet3").Cells '复制目标相关内容
wb.Close
End Sub


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式