如何摆脱这个无限循环?

我的文件夹包含许多文件。 我每个月都有类似的文件夹。 数据文件具有相同的名称,但位于不同的文件夹中。 我想要的是将上个月的数据文件的特定列(计算结果)复制到新月的数据文件。

我的代码是

Dim fileName1, Pathname1 As String Pathname1 = "c:\Charts\1\" For Each vFile1 In vArr1 fileName1 = Dir(Pathname1 & vFile1 & "\" & "*.xlsx") Do While fileName1 <> "" Set WB1 = Workbooks.Open(Pathname1 & vFile1 & "\" & fileName1) WB1.Application.ScreenUpdating = False WB1.ActiveSheet.Columns("M").Copy WB1.Close (False) For Each vFile In vArr fileName = Dir(Pathname & vFile1 & "\" & "*.xlsx") If fileName = fileName1 Then Set WBD1 = Workbooks.Open(Pathname & vFile1 & "\" & fileName1) WBD1.ActiveSheet.Columns("C").Select WBD1.ActiveSheet.Paste WBD1.Close (True) Else End If Next Loop Next 

我在做什么是1.打开一个文件

  1. 复制一列

  2. 检查文件名是相同的

  3. 如果他们是相同的粘贴复制的数据

BUt循环变得无限。 我debugging,找不到它的帮助

当您使用带有参数的DIR函数时,它会find与指定条件匹配的第一个文件。 如果你想获得下一个文件,请使用DIR()。

在你的代码中,你一遍又一遍地得到第一个文件,永远不会达到filename1 =“”的条件