我的文件夹包含许多文件。我每个月都有类似的文件夹。数据文件具有相同的名称,但它们位于不同的文件夹中。我想要的是将上个月的数据文件的特定列(计算结果)复制到新月的数据文件。
我的代码是
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.打开文件
复制专栏
检查文件名是否相同
如果它们相同,则粘贴复制的数据
BUt循环变得无限。 我调试了,找不到它 请帮忙
答案 0 :(得分:2)
当您使用带参数的DIR函数时,它会找到与指定条件匹配的第一个文件。如果要获取下一个文件,请单独使用DIR()。
在您的代码中,您反复获取第一个文件,并且永远不会达到filename1 =&#34;&#34;
的条件