错误1004 – 打开工作簿

我尝试通过inputDateconso在用户决定的文件夹中打开工作簿。 在另一个工作簿中打开工作簿复制/粘贴。

问题在于打开文件时代码中断。

执行错误1004:'11400。 找不到“16.01.xlsm”。

这里的东西工作簿的名称是11400.16.01.xlsm之间没有任何11400.和16(这是Dateconso)之间的空间。

我明白,它不能打开这个工作簿,因为它不存在…但这不是我想打开的工作簿!

Sub consolidation() ' ' Macro ' Déclaration des variables Dim wb As Workbook Dim myPath As String Dim myFile As String Dim Dateconso As String 'Optimisation de la Macro Speed Application.ScreenUpdating = True Application.EnableEvents = True 'Sélection de la date Dateconso = InputBox("Quelle date souhaitez-vous consolider?","Question") If Dateconso = "" Then Exit Sub 'Si rien exit le programme 'Trouve les fichiers qui on la date associée myFile = Dir("Z:\7. Personnel\Florian\Projet_BDC\Test\*.xlsm") While myFile <> "" If InStr(myFile, Dateconso) > 0 Then 'si tu trouve la date recherchée, alors ouvre le fichier puis copie toute puis colle Set wb = Workbooks.Open(Filename:=myFile) wb.Worksheets(1).Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Workbooks("Consolidation.xlsm").Worksheets(2).Activate ActiveSheet.Paste wb.Close Else: MsgBox "Fichiers introuvables, vérifiez le format de date entré" 'Si il ne trouve rien, préviens l'utilisateur Exit Sub End If myFile = Dir() Wend End Sub 

这实际上与VBA误读文件名的方式无关。 实际上,修复(例如额外的空格字符)在包含句点的文件名中是必要的。 保持文件名不变。

问题是你没有提供path和文件名。 Dir函数只返回文件名,而不是完整的path。 在使用之前,您需要重新添加path。

 Dim fp As String, fn As String fp = "Z:\7. Personnel\Florian\Projet_BDC\Test\" fn = Dir(fp & "*.xlsm") While fn <> "" If InStr(fn, Dateconso) > 0 Then 'si tu trouve la date recherchée, alors ouvre le fichier puis copie toute puis colle Set wb = Workbooks.Open(Filename:=fp & fn) 'do stuff wb.Close Else: MsgBox "Fichiers introuvables, vérifiez le format de date entré" 'Si il ne trouve rien, préviens l'utilisateur Exit Sub End If fn = Dir() Wend