如何找到通配符匹配 VBA 中至少一个字符的文件夹名称

How do I find the name of folder with wildcard matching at least one character in VBA

我正在研究 Excel spreadhseet 并试图弄清楚如何使用通配符。我在名为 Projects 的文件夹中有许多子文件夹。我需要能够使用项目编号在内部搜索并找到特定文件夹的名称。因此,文件夹名称属于以下类型:

5123_Smith_Croydon
4378_Cook_Manchester
等等。

所以我有以下代码,工作正常:

folderLoc = "C:\PROJECTS\"
projectNum = Range("A2").Value2 'this is just a 4 digit number representing the project number
folderName = Dir(folderLoc & projectNum & "*", vbDirectory)

然而,一些项目文件夹只是被称为:
5234_
然后下一个文件夹就是实际的:
5234_Harvey_Glasgow

所以我正在寻找一种方法来找到第二个(包含名称和城市的较长的那个),但我的代码只找到第一个(5234_)。
我尝试了以下方法,但它不起作用,我不明白为什么:

folderLoc = "C:\PROJECTS\"
projectNum = Range("A2").Value2 'this is just a 4 digit number representing the project number
folderName = Dir(folderLoc & projectNum & "*[A-Z]*", vbDirectory)

你能帮我用一个有效搜索“下划线后至少包含一个字符”的通配符组合吗?如果这会使它更简单,那么这个字符始终是大写字母。
提前致谢

下划线后不能指定 class 个字符,但可以使用 ? 通配符指定下划线后有一个字符。

Dir(folderLoc & projectNum & "_?*", vbDirectory)

如果这不起作用,那么您可以读取整个目录,并使用更复杂的方法或正则表达式处理列表。