Workbooks.Open Filename:=Dir(ThisWorkbook.Path & "\" & "*Working*" & ".xlsx"), UpdateLinks:=0
其中,文件夹中肯定存在2014 Working.xlsx,VBA 能返回Excel含有特定字符Working的完整名,2014 Working.xlsx后缀也正确。
却提示在文件夹中(没提哪个文件夹)没找到2014 Working.xlsx
在文件夹下先用随便一个工作簿另存时触发一下就可以了,但这个有点麻烦,不知道为什么
求高人~
第1个回答 2014-04-24
你要遍历 这个文件夹的,然后用 instr 判断的
DIR 不支持模糊匹配
Sub 打开()Path = "D:\360data\重要数据\桌面\VBA"
f = Dir(Path & "\*.xls", vbNormal)
Do
If InStr(f, "Working") > 0 Then
Set Wkb = Workbooks.Open(Filename:=Path & "\" & f)
Exit Do
End If
f = Dir()
Loop Until f = ""
End Sub追问
我在文件夹里随便用一个Excel另存到这个文件夹下时,看到文件夹里所有的Excel后就可以了
这是为什么
Path = "D:\360data\重要数据\桌面\VBA"
f = Dir(Path & "\" & "*Working*" & ".xls", vbNormal)
Workbooks.Open Path & "\" & f
End Sub
我测试, 这2句分开, 别连一起是可以的
看来dir 是支持通配符的, 是open 语句 不能这么直接调用文件名, 要分2句
本回答被提问者采纳第2个回答 2014-04-24
是这样的,有的文件名有特殊字符,open语句直接就失败了。追问
不是这样,我看了不是open的问题
而是文件夹地址和找到的Excel不能组合成地址加文件名的问题