VBA 打开带有部分名称的文件

VBA opening a file with partial name

我正在尝试打开一个将定期更新的文件。当前名称是“GDE Portfolio Characteristics 12.31.2021”,其想法是指示代码打开它,无论日期如何(即最后 10 个字符)。我应该只有一个文件夹中的文件具有这样的部分名称。

我使用的代码如下:

Workbooks.Open Filename:=ThisWorkbook.Path & "\Parametric GDE Portfolio Characteristics*.xlsx"

当运行它时,它似乎没有找到该文件。如果我改为使用文件的整个名称,它会起作用。

菜鸟问题,百思不得其解!

非常感谢

无法在 Open-statement 中使用通配符。但是,您可以使用 Dir-获取真实文件名的命令,因为它允许通配符:

Dim fileName As String
fileName = Dir(ThisWorkbook.Path & "\Parametric GDE Portfolio Characteristics*.xlsx")
If fileName <> "" Then
    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & fileName
End If

这是一个更通用的方法:

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 Function