Excel宏中的“我在文件夹中的循环”代码出现“找不到文件”错误
我正在整理或追加数据,一个接一个地使用下面的代码复制粘贴数据,粘贴数据来自不同的Excel,格式相同,存储在文件夹中Excel宏中的“我在文件夹中的循环”代码出现“找不到文件”错误,excel,vba,Excel,Vba,我正在整理或追加数据,一个接一个地使用下面的代码复制粘贴数据,粘贴数据来自不同的Excel,格式相同,存储在文件夹中 Sub LoopThroughFolder() Dim MyFile As String, Str As String, MyDir As String, Wb As Workbook Dim Rws As Long, Rng As Range Set Wb = ThisWorkbook MyDir = "Z:\MIS & ANALYTICS\RPA\" MyFile
Sub LoopThroughFolder()
Dim MyFile As String, Str As String, MyDir As String, Wb As Workbook
Dim Rws As Long, Rng As Range
Set Wb = ThisWorkbook
MyDir = "Z:\MIS & ANALYTICS\RPA\"
MyFile = Dir(MyDir)
ChDir MyDir
Application.ScreenUpdating = 0
Application.DisplayAlerts = 0
Do While MyFile <> ""
Workbooks.Open (MyFile)
With Worksheets("Sheet1")
Rws = Cells(Rows.Count, "A").End(x1Up).Row
Set Rng = Range(Cells(2, 1), .Cells(Rws, 27))
Rng.Copy Wb.Worksheets("Sheets1").Cells(Rows.Count, "A").End(x1Up).Offset(1, 0)
ActiveWorkbook.Close True
End With
MyFile = Dir()
Loop
End Sub
Sub-LoopThroughFolder()
Dim MyFile作为字符串、Str作为字符串、MyDir作为字符串、Wb作为工作簿
变暗Rws的长度与Rng的范围相同
设置Wb=ThisWorkbook
MyDir=“Z:\MIS&ANALYTICS\RPA\”
MyFile=Dir(MyDir)
ChDir MyDir
Application.ScreenUpdate=0
Application.DisplayAlerts=0
当我的文件“”时执行此操作
工作簿。打开(MyFile)
带工作表(“表1”)
Rws=单元格(Rows.Count,“A”).End(x1Up).Row
设置Rng=范围(单元格(2,1),.单元格(Rws,27))
Rng.复制Wb.工作表(“Sheets1”).单元格(Rows.Count,“A”).结束(x1Up).偏移量(1,0)
ActiveWorkbook.Close为真
以
MyFile=Dir()
环
端接头
这里的
MyFile=Dir(MyDir)
搜索文件名为“xyz.xls”
,而在文件夹中,它只有“xyz”
,因此它会给我一个错误,说明找不到文件。Dir
函数只返回文件名,而不返回路径,因此,当您使用它时,必须再次附加它:
换行
Workbooks.Open (MyFile)
对此
Workbooks.Open MyDir & MyFile
并删除此项:
ChDir MyDir
您使用的是
x1Up
而不是xlUp
(即1
应该是一个L:L
)看到区别了吗?该错误存在于代码中的多个位置,因此请确保修复所有位置。函数只返回文件名,而不返回路径,因此在使用时必须再次附加该文件名:
换行
Workbooks.Open (MyFile)
对此
Workbooks.Open MyDir & MyFile
并删除此项:
ChDir MyDir
您使用的是
x1Up
而不是xlUp
(即1
应该是一个L:L
)看到区别了吗?这个错误存在于代码中的多个位置,因此请确保修复所有错误。这非常有帮助,现在代码运行得非常好,非常感谢Brax很高兴您能够使其正常工作。请接受这个答案,这样它就不会成为一个悬而未决的问题。在我的答案顶部附近有一个小的复选标记。这非常有帮助,现在代码工作得非常好,非常感谢Brax,很高兴你能让它工作。请接受这个答案,这样它就不会成为一个悬而未决的问题。在我要单击的答案顶部附近有一个小复选标记。我猜MyDir路径有“&”可能是问题所在。您是否可以从本地存储中尝试使用类似“C:\temp\(ebnsuring temp文件夹已存在)的路径?我猜MyDir路径中有“&”可能是问题所在。您是否可以从本地存储中尝试使用类似“C:\temp\”的路径(ebnsuring temp文件夹已存在)