我尝试在用户通过输入Dateconso决定的文件夹中打开工作簿。在另一个工作簿中打开工作簿复制/粘贴。错误1004 - 打开工作簿
问题是代码在打开文件时中断。
执行错误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
也许这是一个明显的问题,但是''InputBox'中的手动输入是否可以在11400中输入额外的空格。 16.01.xlsm'?您可能还希望通过使用'If myFile = Dateconso'来取代直接相等,而不是使用'Instr'。这将消除简单的手动类型页面。 –
当我在Dateconso框中选择了16时没有空格。 的事情是我想我的文件重命名为11400 16.01.xlsm,我得到了同样的错误... – Florian
我不能使用MYFILE = Dateconso因为Dateconso的名称是文件的一部分....用于为例,文件是1400.16.01 我想找到名称为16的文件。 – Florian