分享

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

 hercules028 2020-03-28

excelperfect

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

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

'获取指定文件夹中除当前工作簿外'最新保存的工作簿的文件名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 = sNameEnd Function

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

Sub test()    Dim wbName As String       wbName =GetLastWorkbook(ActiveWorkbook.Path)    Debug.Print wbNameEnd Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约