【发布时间】:2015-02-10 06:11:44
【问题描述】:
我有一个包含 9 个不同工作表的工作簿,其中 1 个工作表(如果其中 4 个工作表合并为 1 个工作表)以进行进一步比较,从复制和粘贴的角度来看这很容易,但我从自动化的角度来看它行的长度可以根据数据增加和减少。
我需要首先在 A、B、C 列的左侧复制工作表 A,然后将工作表 B 直接插入到同一列的工作表 A 下方。工作表 C 和 D 相似,但位于 H、I、J 列中前 2 个工作表的右侧,因此可以进行比较
我试图变得聪明,并在每张工作表上运行多个 for 循环,将数据复制到此工作表中,A&B 共享一个全局变量,C&D 持有另一个变量,以便它们进入正确的位置。我遇到的问题是运行时间长,主要是在 excel 上崩溃。
我也尝试复制粘贴所有列,但没有成功,因为它们的长度不同,因此无法记录。
我终于尝试了一种将行计数器设置为上一张工作表的最后使用的行的方法,但它也导致崩溃。
Sheets("Income").Select
Dim xell As Range
For Each xell In Range("A1:A3005")
If Not xell.Value = "" Then
xell.EntireRow.Copy
Sheets("Workings").Select
Cells(z, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Sheets("Income").Select
z = z + 1
End If
Next xell
这是我第一次尝试与其他工作表代码相似的示例,任何人都知道如何将 4 个工作表复制到所需目的地的 1 个工作表>?
【问题讨论】: