如何找到通配符匹配 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)
如果这不起作用,那么您可以读取整个目录,并使用更复杂的方法或正则表达式处理列表。
我正在研究 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)
如果这不起作用,那么您可以读取整个目录,并使用更复杂的方法或正则表达式处理列表。