前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实用小程序62: 获取文件夹中最新保存的工作簿

VBA实用小程序62: 获取文件夹中最新保存的工作簿

作者头像
fanjy
发布2020-03-31 18:06:07
1.4K0
发布2020-03-31 18:06:07
举报
文章被收录于专栏:完美Excel完美Excel

在有些情形下,我们可能需要找到指定文件夹中最新保存的工作簿,然后对其进行处理。例如,每天上班前系统会自动生成一个工作簿并保存到某文件夹中,而某位员工每天上班后需要从该文件夹中打开这个新生成的工作簿来提取数据,这样程序需要根据工作簿保存的时间找到这个最新保存的工作簿,然后再对其进行处理。

下面的程序可以返回指定文件夹中最新保存的工作簿名称:

代码语言:javascript
复制
'获取指定文件夹中除当前工作簿外
'最新保存的工作簿的文件名
Function GetLastWorkbook(sPath As String) As String
    Dim wb As Workbook
    Dim sFile As String
    Dim fs As Object
    Dim objFile As Object
    Dim strMsg As String
    Dim tm As Date
    Dim sName As String
   
    '如果文件路径中没有反斜杠则添加
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
   
    '获取文件
    sFile = Dir(sPath & "*.xls*")
    Set fs =CreateObject("Scripting.FileSystemObject")
    SetobjFile = fs.GetFile(sPath & sFile)
    tm = 0
       
    '遍历文件夹中的文件
    Do While sFile <> ""
        Set objFile = fs.GetFile(sPath &sFile)
        '如果文件不是本代码所在的工作簿且文件最近保存的日期大于上一文件保存的日期
        If objFile.Name <>ActiveWorkbook.Name And objFile.DateLastModified > tm Then
           '将该文件赋值给变量
            tm = objFile.DateLastModified
           '将该文件名赋值给变量
            sName = objFile.Name
        End If
        '下一个文件
        sFile = Dir
    Loop
   
    '返回值
    GetLastWorkbook = sName
End Function

假设当前工作簿存放在指定要获取最新保存工作簿的文件夹中,可以使用下面的程序代码调用GetLastWorkbook过程:

代码语言:javascript
复制
Sub test()
    Dim wbName As String
   
    wbName =GetLastWorkbook(ActiveWorkbook.Path)
    Debug.Print wbName
End Sub
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档