Ya que es un asunto que no tratamos, asumiré que estamos hablando de un archivo de extensión .xls o .xlsm.
Este código es la adaptación de MACRO PARA LISTAR ARCHIVOS DE CARPETAS Y SUBCARPETAS
Function Mostrar_Archivos(ruta As String, ini As String) As String
'Sección 1: Declaración de variables y objetos
Dim fs, carpeta, archivo, subcarpeta As Object
Set fs = CreateObject("Scripting.FileSystemObject")
'Sección 2: Ajustes necesarios a ruta
If ruta = "" Then
Exit Function
ElseIf Right(ruta, 1) <> "" Then
ruta = ruta & ""
End If
'Sección 3: Objeto Folder de la ruta indicada
Set carpeta = fs.GetFolder(ruta)
'Sección 4: Obtener archivos del objeto Folder
For Each archivo In carpeta.Files
If (Left(archivo.Name, Len(ini)) = ini) Then
Mostrar_Archivos = archivo.Name
Exit Function
End If
Next
End Function
Y acá tenemos el código para abrir el archivo
Sub subAbrir()
Dim ruta As String, ini As String
'Ruta a la carpeta donde se guarda el archivo'
ruta = "C:\ruta_carpeta\"
'Letras con que inicia el nombre del archivo buscado'
ini = "ED"
'Llamar a la función mostrar archivo que devuelve la ruta al archivo _
abrirlo una vez que se tenga el resultado'
Workbooks.Open Filename:=Mostrar_Archivos(ruta, ini)
End Sub
El código no tiene control de errores, por lo tanto, si no se encuentra el archivo, enviará un error.
S@lu2.