【发布时间】:2016-01-22 18:28:52
【问题描述】:
我尝试在用户通过输入 Dateconso 决定的文件夹中打开工作簿。在另一个工作簿中打开工作簿副本/粘贴。
问题是代码在打开文件时中断。
执行错误 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 并且我得到了同样的错误......
-
我不能使用 myFile=Dateconso 因为 Dateconso 是名称文件的一部分....例如,文件是 1400.16.01 我想找到名称为 16 的文件它。
-
我尝试使用 trim 并得到同样的错误
-
myFile = replace(myFile, chr(46) & chr(32), chr(46)) 没有改变问题...