【发布时间】:2018-12-04 10:01:12
【问题描述】:
在将多个 Excel 文件的内容合并为一个时,我收到了此错误消息。我知道发生这种情况是因为没有太多空间了。 谁能帮我添加一条规则,比如如果空间不够,然后打开一个新的工作表并将剩余的内容粘贴到那里?
就是这样:
Sub simpleXlsMerger()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
Set dirObj = mergeObj.Getfolder("C:\Users\JudakV\Desktop\xxxmacro\")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
Range("A2:IV" & Range("1000000").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
Range("A1000000").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
bookList.Close
Next
End Sub
我的一份报告需要将几个(大约 20 个)excel 文件的内容复制并粘贴到一个文件中,如果它有超过 1M 行(通常更多),则打开一个新工作表并将剩余的部分复制到那里。 我不擅长宏,但如果它可以工作的话,它可以为我节省很多时间。但是我对页面限制感到不安,并打开了一个新的工作表部分......
【问题讨论】:
-
不清楚
merge是什么意思 - 将所有数据放在一张纸上?一张(xlsm 文件)可以容纳超过一百万行,但我怀疑你会对这样的文件感到满意。无论如何,如果您想获得帮助,请显示您的代码。
标签: excel vba error-handling