如何解决如何在VBA中找到具有通配符且至少匹配一个字符的文件夹的名称
我正在研究Excel扩展名,并试图弄清楚如何使用通配符。我在名为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_格拉斯哥
因此,我正在寻找一种方法来查找第二个(包含名称和城市的较长的一个),但是我的代码只能找到第一个(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)
请提供一个通配符组合来帮助我,该通配符组合可以有效地搜索“下划线后至少包含一个字符”。如果这样会使它更简单,则它始终是一个大写字母。
谢谢你
解决方法
您不能在下划线后面指定一个字符类,但是可以使用?
通配符在下划线后面指定一个字符。
Dir(folderLoc & projectNum & "_?*",vbDirectory)
如果这不起作用,那么您可以阅读整个目录,并使用更复杂的方法或正则表达式来处理列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。