una modo libro hacer guardar con compatible compatibilidad como binario archivos archivo anterior abrir excel excel-vba wildcard

modo - Usar un comodín para abrir un libro de Excel



libro binario de excel (4)

Quiero utilizar un comodín para abrir un libro de trabajo almacenado en la misma carpeta que mi libro de trabajo de macro. En la carpeta hay un archivo llamado 302113-401yr-r01.xlsm . Aquí está mi código:

Workbooks.Open filename:=ActiveWorkbook.Path & "/302113*.xlsm"

Sin embargo, me dice que no hay tal archivo. ¿Algún consejo?


Desde mi experiencia esto funciona si tienes el comodín / asterisco como el último símbolo en la cadena y si solo hay un archivo. Trata de hacerlo:

Workbooks.Open filename:=ActiveWorkbook.Path & "/302113*"

Por ejemplo, estoy usando:

Workbooks.Open Filename:="X:/business/2014/Easy*"

y funciona.


No podemos abrir un archivo con un comodín: ¡imagina el caos si pudiéramos!

Tendrá que usar Dir(ActiveWorkbook.Path & "/302113*.xlsm") para recorrer los archivos que esto devuelve. Si solo habrá uno, solo usa esta función una vez:

Dim sFound As String sFound = Dir(ActiveWorkbook.Path & "/302113*.xlsm") ''the first one found If sFound <> "" Then Workbooks.Open filename:= ActiveWorkbook.Path & "/" & sFound End If

Función Dir : tecnología en la red


Puede abrir archivos utilizando el comodín, pero solo con rutas UNC por alguna razón.

Por ejemplo :

Set xlFile = xlObj.WorkBooks.Open("//yourServerHere/dataAutomation/*.xlsx")


Todavía no tengo tanta experiencia con Excel, pero lo siguiente me funciona bien para usar comodines en nombres de archivo para abrir archivos. Este ejemplo requiere que todos los archivos estén en el mismo directorio / carpeta. Sí, es bastante simplista.

Sub using_wildcards_to_open_files_in_excel_vba() Dim mypath As String Dim sFilename As String ''Suppose you have three files in a folder '' Named blank.xlsx,, ex1_939_account.xlsx, and ex1_opt 5.xlsx ''Manually open the blank.xlsx file ''The following code lines will open the second two files before closing the previously opened file. ActiveWorkbook.Activate mypath = ActiveWorkbook.Path ''opening xlsx file with name containing "939" and closing current file mypath = mypath & "/*939*.xlsx" ''MsgBox mypath ''Checking sFilename = Dir(mypath) ''MsgBox sFilename ''Checking ActiveWorkbook.Close savechanges:=False Workbooks.Open Filename:=sFilename ActiveWorkbook.Activate mypath = ActiveWorkbook.Path ''opening xlsx file with name ending in "opt 5" and closing current file mypath = mypath & "/*opt 5.xlsx" ''MsgBox mypath ''Checking sFilename = Dir(mypath) ''MsgBox sFilename ''Checking ActiveWorkbook.Close savechanges:=False Workbooks.Open Filename:=sFilename End Sub