我正在尝试打开一个文件,它将定期更新。当前的名称是"GDE组合特性12.31.2021“,其思想是指示代码打开它,不管日期(即最后10个字符)。我应该只有一个文件在文件夹中具有这样的部分名称。
我使用的代码如下:
Workbooks.Open Filename:=ThisWorkbook.Path & "\Parametric GDE Portfolio Characteristics*.xlsx"运行它时,它似乎找不到文件。如果我使用文件的全名,它就能工作。
新手的问题,但是在沮丧中挠我的头!
非常感谢
发布于 2022-03-17 09:36:57
在Open语句中无法使用通配符。但是,您可以使用Dir-command获取真正的文件名,因为它允许通配符:
Dim fileName As String
fileName = Dir(ThisWorkbook.Path & "\Parametric GDE Portfolio Characteristics*.xlsx")
If fileName <> "" Then
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & fileName
End If发布于 2022-03-17 09:49:19
下面是一种更通用的方法:
Sub OpenFiles()
Dim Files As Collection
Set Files = ListFiles(ThisWorkbook.Path, "Parametric GDE Portfolio Characteristics*.xlsx")
Dim Filename As Variant
For Each Filename In Files
Workbooks.Open Filename:=Filename
Next
End Sub
Function ListFiles(FolderName As String, SearchString As String) As Collection
Set ListFiles = New Collection
Dim Filename As String
Filename = Dir(FolderName & "\" & SearchString)
If Len(Filename) = 0 Then Exit Function
Do While Filename <> ""
ListFiles.Add Filename
Filename = Dir()
Loop
End Functionhttps://stackoverflow.com/questions/71509889
复制相似问题