如何摆脱这种无限循环?

时间:2015-06-22 11:21:54

标签: excel excel-vba vba

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

我的代码是

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. 如果它们相同,则粘贴复制的数据

  4. BUt循环变得无限。 我调试了,找不到它 请帮忙

1 个答案:

答案 0 :(得分:2)

当您使用带参数的DIR函数时,它会找到与指定条件匹配的第一个文件。如果要获取下一个文件,请单独使用DIR()。

在您的代码中,您反复获取第一个文件,并且永远不会达到filename1 =&#34;&#34;

的条件