Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 对于用于从文件夹中获取所有文件的每个循环-最旧的优先。首先需要最新的_Excel_Vba_Foreach - Fatal编程技术网

Excel 对于用于从文件夹中获取所有文件的每个循环-最旧的优先。首先需要最新的

Excel 对于用于从文件夹中获取所有文件的每个循环-最旧的优先。首先需要最新的,excel,vba,foreach,Excel,Vba,Foreach,全部,请参阅下面的代码段。(不是我写的) 这段代码: 1.)查看位置处的每个文件(SDCDumpFileFolder) 2.)检查以确定名称是否为特定格式 3.)如果名称通过此检查,它将检查是否存在新文件夹。(如果不是,则创建它) 4.)然后将该文件复制到新位置。 5.)然后转到根位置的下一个文件 现在,“For Each objEachFile In objFiles”基本上是循环遍历文件夹中的每个文件,从最早的文件到最新的文件。我想让它从最新的到最旧的。这是因为我注入了一个简单的If/THE

全部,请参阅下面的代码段。(不是我写的) 这段代码: 1.)查看位置处的每个文件(SDCDumpFileFolder) 2.)检查以确定名称是否为特定格式 3.)如果名称通过此检查,它将检查是否存在新文件夹。(如果不是,则创建它) 4.)然后将该文件复制到新位置。 5.)然后转到根位置的下一个文件

现在,“For Each objEachFile In objFiles”基本上是循环遍历文件夹中的每个文件,从最早的文件到最新的文件。我想让它从最新的到最旧的。这是因为我注入了一个简单的If/THEN计数器(I=1,每个for/each循环I增加1,直到达到10,然后退出for-each循环),因为我试图只获取10个最新的条目,而不是10个最旧的条目

如果有人对如何做到这一点有任何提示,请让我知道

Set objFS = CreateObject("Scripting.FileSystemObject")

' get the folder object
Set objFolder = objFS.GetFolder(g_strSDCDumpFileFolder)
' get all files within the same folder
Set objFiles = objFolder.Files

' read in all files, and parse each file name into 4 portions: CID, QID, Date, Time

For Each objEachFile In objFiles
    
    ' go through each file base name
    strEachFileName = objEachFile.Name
    strEachFileNameNoExt = objFS.GetBaseName(strEachFileName)
    
    ' make sure the file is the quote file only - 4 strings separated by .
    arrParts = Split(strEachFileNameNoExt, ".")
    If UBound(arrParts) - LBound(arrParts) + 1 <> 4 Then
        GoTo NextFor
    End If
    
    ' locate the new path
    strNewPath = g_strNewQuotesRootPath + arrParts(2) + "\"
    If Dir(strNewPath, vbDirectory) = vbNullString Then
        MkDir strNewPath
    End If
    
    strEachFileName = g_strSDCDumpFileFolder + strEachFileName
    ' move the file into subfolders based on the Date
    objFS.CopyFile strEachFileName, strNewPath, True
Set objFS=CreateObject(“Scripting.FileSystemObject”)
'获取文件夹对象
设置objFolder=objFS.GetFolder(g_strsdcpdumpfilefolder)
'获取同一文件夹中的所有文件
设置objFiles=objFolder.Files
'读入所有文件,并将每个文件名解析为4个部分:CID、QID、日期、时间
对于objFiles中的每个objEachFile
'检查每个文件基名称
strEachFileName=objEachFile.Name
strEachFileName noext=objFS.GetBaseName(strEachFileName)
'确保该文件仅为引号文件-4个字符串,以分隔。
arrParts=Split(streachfilenameoext,“.”)
如果UBound(arrParts)-LBound(arrParts)+1 4,则
转到下一个
如果结束
'找到新路径
strNewPath=g_strNewQuotesRootPath+arrParts(2)+“2”
如果Dir(strNewPath,vbDirectory)=vbNullString,则
MkDir strNewPath
如果结束
strEachFileName=g_strsdcddumpfilefolder+strEachFileName
'根据日期将文件移动到子文件夹中
objFS.CopyFile strEachFileName,strNewPath,True