0

我的设置:有 50,000 行数据。(我的行数将来会增加。所以不妨说我有一个 64000+ 行的完整工作表。)所有数据都是文本,没有公式等。

A 列已打开 B 到 AC 列包含需要连接的数据 一旦连接到 A 列,行中的数据将包含 60,000 位或 6kb 的文件大小。经过额外的操作后,每个单元格将成为一个文件。

我曾尝试在 Excel 中进行连接,但遇到了内存问题。内存问题是当我选择并将连接函数填写到工作表中时。它在 8200 +/- 行崩溃。我的系统是 2gb 的内存,windows xp 专业版和 Excel 2003。有 4GB 的磁盘空间

希望找到一个可以节省内存的 VBA 代码,而不是像在 excel 中那样崩溃。

谢谢

4

1 回答 1

0

尽管这对于 excel 来说是一种不寻常的用途,但假设每个连接操作都会占用内存,只是在用完之前释放一些内存。

不是那么优雅,尽管您可以将 2000 行复制并粘贴到 A 列作为值。还可以选择删除 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
于 2009-12-06T23:46:07.807 回答