You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:47:25