使用Dirfind没有“AAA”的文件
我有一些称为Team-(Random Number).txt的文件。
Dir("Team-" & "*" & ".txt")
但是,当有更改时,可能会有称为Team-(随机数)-AAA.txt,Team-(随机数)-AAB.txt等的文本文件,但是最近的文件总是被称为Team-(随机数)。文本。
由于Dir只返回1个文件,这是随机的有办法得到文件Team-(Random Number).txt?
如果dir以正常的顺序返回结果,应该没有问题,但显然是随机的。
我曾想过排除-AAA部分,但不知道语法应该如何。 或者以一种效率较低的方式获取所有文件并将其sorting在一个数组中,但使用10 – 200个文件,效率不高。
现在我希望能给我排除部分或其他解决方法,我的问题的语法谢谢!
我会说去正则expression式。
Private Sub TeamTxtExists() Dim Path As String, Pattern As String, FileFound As String Dim REGEX As Object, Matches As Object Dim oFSO As Object, oFolder As Object, oFile As Object Path = "D:\Personal\Stack Overflow\" 'Modify as necessary. Pattern = "(Team-(\d+).txt)" Set REGEX = CreateObject("VBScript.RegExp") With REGEX .Pattern = Pattern .Global = True .IgnoreCase = True End With Set oFSO = CreateObject("Scripting.FileSystemObject") Set oFolder = oFSO.GetFolder(Path) For Each oFile In oFolder.Files Set Matches = REGEX.Execute(oFile.Name) For Each Match In Matches Debug.Print Match.Value Next Match Next oFile End Sub
这将在您的立即窗口(VBE中的Ctrl-G)中打印文件名中没有AAA
或类似名称的文本文件的所有名称。 尝试和testing。
以类似的方式循环使用VBA文件夹中的文件?
- 使用
Dir
有效地查找与team-xxxx.txt匹配的第一组文件 - 然后在可能要做的通缉的匹配零
-
Like
简单的比赛 -
Regexp
更难匹配
-
- 退出成功匹配的
Dir
列表
我去了正则expression式。
码
Sub LoopThroughFiles() Dim objRegex As Object Dim StrFile As String Dim bFound As Boolean bFound = False Set objRegex = CreateObject("VBScript.RegExp") objRegex.Pattern = "team-\d+" StrFile = Dir("c:\temp\team-*.txt") Do While Len(StrFile) > 0 If objRegex.test(StrFile) = False Then StrFile = Dir Else bFound = True MsgBox "Your file is " & StrFile Exit Do End If Loop If Not bFound Then MsgBox "No Match", vbCritical End Sub
这帮忙吗?
Dir("Your_folder_path_ending_with_a_\" & "Team-(*).txt")
更深入一点,使用图片中显示的文件夹内容:
这个子将返回所有只包含“Team-(Random Number).txt”的文件名:
Sub showFileName() Dim FolderPath As String: FolderPath = "C:\test\" Dim Filter As String: Filter = "Team-(*).txt" Dim dirTmp As String dirTmp = Dir(FolderPath & Filter) Do While Len(dirTmp) > 0 Debug.Print dirTmp dirTmp = Dir Loop End Sub
结果是:
Team-(123)的.txt
Team-(14)的.txt
Team-(PI)的.txt