检索目录中最后一个文件夹的文件夹名称

我正在通过Excel工作簿自动执行我们的采购订单的保存stream程。 而不是用户必须将模板复制到正确的目录中,并使用顺序中的下一个顺序号(例如,前一个订单是2016年7月7日订购的订单号SJ-K1880) KO_SJ-K1880_070716,下一个订单号为2016年7月11日的SJ-K1881,文件名为KO_SJ-K1881_110716),用户只需要点击保存button,工作簿就会保存在正确的目录下文件名自动跟随序列。 下面是一个这样的文件的完整目录的例子:

C:\Users\User\Desktop\Kyocera Order Doc\ Kyocera Orders\Orders 2016\07 July 2016\ KO SJ-K1880 070716\KO_SJ-K1880_070716.xlsm 

使用当前date,我已经设法检查目录的存在,直到07 July 201607 July 2016 ,如果它不存在,创build它。 我的问题是find该目录中的最后一个文件夹(在这个例子中是KO SJ-K1880 070716 ),并用它来确定下一个订单号码是什么。

这似乎给你想要什么,但它依赖于升序的文件夹名称。

 Option Explicit Sub main() Dim fldr As String fldr = Environ("USERPROFILE") & _ "\Desktop\Kyocera Order Doc\Kyocera Orders\Orders 2016\07 July 2016" Debug.Print mostRecentFolderNdx(fldr) End Sub Function mostRecentFolderNdx(base As String) Dim f As String, lstndx As String f = Dir(base & "\*", vbDirectory) Do While CBool(Len(f)) If Not CBool(InStr(1, f, Chr(46))) Then lstndx = Split(f, Chr(32))(UBound(Split(f, Chr(32)))) End If f = Dir Loop mostRecentFolderNdx = lstndx End Function 

如果您要依靠升序sorting,最好让您的文件夹使用命名约定,如\20160707\而不是\07 July 2016\