寻求VBA解决方案:打开含固定前缀「PM Wo 7.6」的可变名称XLSB工作簿
VBA 动态打开指定前缀的XLSB文件解决方案
要实现打开前缀为「PM Wo 7.6」的可变文件名XLSB文件,可以利用VBA的Dir函数通过通配符匹配目标文件,替代原代码中的硬编码文件名。以下是调整后的完整解决方案:
基础版(匹配第一个符合条件的文件)
Dim targetPath As String Dim targetFileName As String Dim wb As Workbook ' 获取当前工作簿所在目录路径 targetPath = ThisWorkbook.Path ' 使用通配符*匹配前缀后的可变部分,查找XLSB文件 targetFileName = Dir(targetPath & "\PM Wo 7.6*.xlsb") ' 检查是否找到目标文件,避免打开空路径报错 If targetFileName <> "" Then ' 打开文件,保留原代码的只读、不更新链接设置 Set wb = Workbooks.Open(targetPath & "\" & targetFileName, UpdateLinks:=False, ReadOnly:=True) Else MsgBox "未找到前缀为「PM Wo 7.6」的XLSB文件", vbExclamation End If
进阶版(遍历所有符合条件的文件)
如果目录下存在多个符合前缀的XLSB文件,可以通过循环遍历全部打开:
Dim targetPath As String Dim targetFileName As String Dim wb As Workbook targetPath = ThisWorkbook.Path targetFileName = Dir(targetPath & "\PM Wo 7.6*.xlsb") ' 循环查找并打开所有匹配的文件 Do While targetFileName <> "" Set wb = Workbooks.Open(targetPath & "\" & targetFileName, UpdateLinks:=False, ReadOnly:=True) ' 在此添加对当前打开文件的操作逻辑(例如读取数据、处理内容等) ' ... targetFileName = Dir ' 继续查找下一个匹配文件 Loop
关键说明
Dir("路径\PM Wo 7.6*.xlsb"):通过通配符*匹配前缀「PM Wo 7.6」之后的任意字符,精准定位目标文件- 加入文件存在性检查,避免因找不到文件导致运行时错误
- 保留原代码的
UpdateLinks:=False和ReadOnly:=True参数,维持原有的文件打开行为
内容的提问来源于stack exchange,提问作者Waleed
相关产品推荐
相关产品推荐

