【问题标题】:Copying Large Amounts of Data in Excel在 Excel 中复制大量数据
【发布时间】:2013-09-29 20:10:54
【问题描述】:

我有一个包含大约 90 个格式相同的工作簿的电子表格。我需要将位于一行中的大约 336 个独立公式从已完成的工作表复制并粘贴到所有其他工作表。不幸的是,这最终需要一次复制和粘贴大约 30k 个单独的单元格。除了拆分并手动执行之外,还有其他解决方法吗?

感谢任何帮助。谢谢。

【问题讨论】:

  • 复制公式,选择所有其他工作表(使用 Shift+单击选项卡)然后您可以一次粘贴到所有其他工作表。
  • 我已经做到了,问题是我的系统没有足够的 RAM/Excel 没有使用足够的系统资源来正确地做到这一点。每次我尝试粘贴到分组工作表中时,Excel 都会崩溃并关闭。重新打开 Excel 后,我尝试访问恢复的文档,但它总是说它已损坏。
  • 如果把复制粘贴的宏录制到一张工作表上,然后修改代码,粘贴时一次循环一张一张。
  • 尝试@PortlandRunner 的建议,然后在您的原始问题中发布您的代码(编辑它以包含代码)。这很可能在没有“复制/粘贴”的情况下完成 - 一个常见的错误是严重依赖熟悉的操作,如“复制”和“粘贴”,而其他方法本质上是“复制”同时使用更少的资源。
  • 在复制粘贴之前关闭计算(设置为Manual)。问题可能是它试图一次计算一大堆非常复杂的公式并且因为计算需要一个小时而挂起。在关闭计算的情况下执行它们应该可以让您粘贴,并且应该节省大量资源,因为它不会在每次执行粘贴操作时重新计算所有以前的工作表(它只会重新计算所有工作表一次)。

标签: excel vba excel-2010 copy-paste excel-2013


【解决方案1】:

您可以尝试使用 VBA。类似下面的过程应该可以帮助您入门。以下过程从中获取信息。此过程假定您的公式从 A1 行开始并在 C1 行结束,根据需要进行更改。在数组中,列出您想要的工作表的名称。

Sub copyFormulas()

Dim rng As Range
Dim WS As Worksheet

With Sheets("The Sheet Name with the Formulas To Copy")

      Set rng = .Range(.Range("A1:C1"), Range("A" & Rows.Count).End(xlUp))

End With

    For Each WS In Sheets(Array("Your Destination Sheet Name Here", "And Here")) 'Add more sheets if you need to
                    WS.Rows(2).Resize(rng.Count).Copy
                    rng.Copy Destination:=WS.Range("A1")

            Next WS

End Sub

【讨论】:

  • 感谢大家的回复。我对 VBA 还很陌生,所以获取一些示例代码真的很有帮助。
猜你喜欢
  • 2013-12-16
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2017-09-26
相关资源
最近更新 更多