lr = Sheets("基本表").Range("a17").End(xlUp).Row 改成 lr = Sheets("基本表").Range("a65536").End(xlUp).Row
Workbooks.Open myPath & myFile 后 .Sheets("基本表") 为刚打开的excel的 .Sheets("基本表") ,最好把它写全,前面加workbooks("?.xls")
myFile = Dir
'再用dir函数提取一个文件名
Loop
myFile = Dir ???
没有代码无法调试,以上3处试试吧
myFile = Dir(myPath & "\*.xls")
应该放在一个文件夹下对他进行查找,你这样岂不是会打开你运行的那个工作簿,然后面进行关闭
改下下面循环那里
Do While myFile <> ""
Set wb = Workbooks.Open(myPath & myFile)
lr = wb.Sheets("基本表").Range("a17").End(xlUp).Row
lr2 = .Range("A65536").End(xlUp).Row + 1
If lr > 6 Then
arr = wb.Sheets("基本表").Range("A7:AE" & lr).Value
.Range("A" & lr2).Resize(UBound(arr, 1), 31) = arr
End If
wb.Close False
myFile = Dir
Loop
通常取工作表的数据使用COPY和PASTE的方法是比较好的
应该是文件本身没进行 排除引起的错误。
方便将你要汇总的样表发一到两个到我的邮箱么?我邮箱febls@126.com
或者你也可以一句一句的运行这个代码,看看是哪里的问题,打开VBA编辑器后,将光标放到你要运行的代码中,然后按F8一句一句的执行看看问题在哪。
把表发我邮箱,说清楚目的与要求。mfk1288@126.com