微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对于每个反向使用 FileSystemObject

如何解决对于每个反向使用 FileSystemObject

我需要反转这个循环:

我尝试过使用“Step -1”,但没有奏效。 我猜是因为那是一种循环的 FSO 方法

Set d = fso.GetFolder("address")

For Each File In d.files

    If (Int(Mid(File.Name,30,5)) = Int(nfprocurada)) Then
        ActiveWorkbook.FollowHyperlink Address:=File.Path,ExtraInfo:=False
        Exit Sub
    End If
    
Next

解决方法

For Each 循环不接受步长或符号的任何更改。因此,如果您想反转方向,则需要将循环类型更改为 index based loop 之类的 For counter = start to end。由于 Files collection 不接受索引作为参数,因此您需要先将每个文件复制到一个数组中,然后才能循环使用带有索引的文件。

试试这个:

Set d = FSO.getfolder("address")

Dim AllFiles() As Object,FileCount As Integer

For Each File In d.Files
    ReDim Preserve AllFiles(FileCount)
    Set AllFiles(UBound(AllFiles)) = File
    FileCount = FileCount + 1
Next File

Dim i as Long
For i = UBound(AllFiles) To LBound(AllFiles) Step -1
    If (Int(Mid(File.Name,30,5)) = Int(nfprocurada)) Then
        ActiveWorkbook.FollowHyperlink Address:=AllFiles(i).Path,ExtraInfo:=False
        Exit Sub
    End If
Next i

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。