在列表框中列出文件夹中的文件,最近的文件先显示。

我有一个列表框,显示文件夹中的XLSM文件。Archive 和PDF文件,从一个名为 PDF 在XLSM主文件的文件夹中。Main.

C:\Main\Archive\, C:\Main\PDF\,XLSM查找这些项目的位置在根目录下。C:\Main\

我想按降序显示最近修改的文件。

因此,如果一个文件是今天创建的,它将显示在顶部,然后是昨天创建的文件,以此类推。

我的代码只是标准的AddItem to ListBox1

MyFile = Dir(MyFolder & "\*.xlsm")
Do While MyFile <> ""
    ListBox1.AddItem MyFile
    MyFile = Dir
Loop

这些文件的名称也是以FSO或PPG开头,后面是1031等 “票号”,公司名称,工作类型和简单日期。

FSO 10333 Co Name Job Type 042220.xlsm
PPG 10332 Co Name Job Type 042120.xlsm

这就是列表框中名字的显示方式。 PDF也是同样的名字。

谢谢您的时间!

解决方案:

下面的内容呢。

  • 使用 FileSystemObject 访问文件属性,如 GetExtensionName, DateCreatedName.
  • 使用 Dictionary 对象来创建一个库并在内存中存储值。
  • 使用 ArrayList 对象来创建一个列表,以存储创建的时间值,然后我们就可以通过 Sort 递增 Reverse 来创建一个降序列表。
  • 然后我们可以迭代 ArrayList 来返回我们的 Dictionary 并将其添加到 ListBox 顺序。

Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
Dim arrList As Object: Set arrList = CreateObject("System.Collections.ArrayList")
Dim FSO: Set FSO = CreateObject("scripting.FileSystemObject")
Dim oFolder, oFile

Set oFolder = FSO.getfolder(MyFolder)
For Each oFile In oFolder.Files
    If FSO.GetExtensionName(oFile) = "xlsm" Then
        dict(oFile.DateCreated) = oFile.Name
        arrList.Add oFile.DateCreated
    End If
Next

arrList.Sort
arrList.Reverse

For i = 0 To arrList.Count - 1
    ListBox1.AddItem dict(arrList(i))
Next

给TA打赏
共{{data.count}}人
人已打赏
解决方案

SQL Partition By计算净值

2022-5-12 5:00:20

解决方案

My如何在springboot中使用构造函数和调用方法注入Bean?

2022-5-12 5:00:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索