VBA在select中打开多个文件以复制到主表格中

我在VBA(excel)中创build了一个macros,用于打开每个文件的特定范围,每个文件都有一个类似的名称开头(9489),后跟一个文件特定的date(DD-MM-YY)。 然后将select的内容复制到masterfile(Masterfile.xlsm)中,该子目录将运行目录中的所有文件。

从今天开始,我一直得到一个名为“运行时错误1004:9489 150116 Daily Dashboard.xlsx”的错误,请检查文件名的拼写,并确认文件位置是否正确。

为什么我得到这个错误? 最重要的是,有人能帮我解决这个错误吗? 我没有改变文件或文件位置的拼写!

代码:

Sub LoopThroughDirectory() Dim Myfile As String Dim erow Myfile = Dir("F:\WGD\Dep 408101-Se-DCIFINK-009786\Consolidatie & Regulatory Reporting\Regulatory Reporting\Daily dashboard of Ratios\Test Daily Dashboard\") Application.DisplayAlerts = False Do While Len(Myfile) > 0 If Myfile = "Masterfile.xlsm" Then Exit Sub End If Workbooks.Open (Myfile) Worksheets("Liquidity Reporting").Range("A2:E19").Copy Windows("Masterfile.xlsm").Activate erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, 1), Cells(erow, 5)) Workbooks(Myfile).Application.CutCopyMode = False Workbooks(Myfile).Close SaveChanges:=False Myfile = Dir Loop End Sub 

Excel无法find文件的原因是MyFile只是文件名; 您还需要包含该文件path。

这一行: ActiveSheet.Paste Destination...将引发错误。

尽量避免select和激活。

使用复制和粘贴时,不需要调整范围。 你只需要定位目标范围的左上angular的单元格。

 Sub LoopThroughDirectory() Const FOLDERPATH = "F:\WGD\Dep 408101-Se-DCIFINK-009786\Consolidatie & Regulatory Reporting\Regulatory Reporting\Daily dashboard of Ratios\Test Daily Dashboard\" Dim Myfile As String Dim Source As Range, Target As Range Myfile = Dir(FOLDERPATH) Application.DisplayAlerts = False Do While Len(Myfile) > 0 If Myfile <> "Masterfile.xlsm" Then With Worksheets("Sheet1") Set Target = .Range("A" & .Rows.Count).End(xlUp).Offset(1) End With With Workbooks.Open(FOLDERPATH & Myfile) Set Source = .Worksheets("Liquidity Reporting").Range("A2:E19") Source.Copy Destination:=Target .Close SaveChanges:=False End With End If Myfile = Dir Loop End Sub