Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel宏中的“我在文件夹中的循环”代码出现“找不到文件”错误_Excel_Vba - Fatal编程技术网

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

我正在整理或追加数据,一个接一个地使用下面的代码复制粘贴数据,粘贴数据来自不同的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 = 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文件夹已存在)