我的设置: 拥有50,000行数据。 (我的行数将来会增加。所以不妨说我有一个64000+行的完整工作表。) 所有数据都是TEXT,没有公式等。
A栏已打开 列B到AC包含需要连接的数据 一旦连接到A列的行中的数据将包含60,000个数字或6kb的文件大小。在额外的maniuplation之后,每个单元格将成为一个文件。
我尝试在Excel中连接,但遇到了内存问题。内存问题是当我选择并将连接函数填充到工作表中时。它在8200 +/-行崩溃。 我的系统是2GB的ram,windows xp专业版和Excel 2003.拥有4GB的磁盘空间
希望找到一个可以节省内存的VBA代码,而不是像在excel中那样崩溃。
谢谢
答案 0 :(得分:0)
虽然这是excel的一个不寻常的用途,但假设每个连接操作占用内存只是在你用完之前释放一些内存。
虽然您可以将2000行复制并粘贴到自身作为值,但不是那么优雅。可选地还删除A2:AC2002(可能不需要的使用数据)。关闭自动计算也可能有所帮助。
使用来自宏录制器的宏简单记录你做这个[相对定位]的宏。首先选择你已经完成的公式。
非常粗略的代码:
Sub Macro5()
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Dim i As Long
For i = 0 To 32
Selection.Copy
ActiveCell.Offset(1, 0).Range("A1:A2000").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Offset(-1, 0).Range("A1:A2000").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.Offset(2000, 0).Range("A1").Select
Next i
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub