0
我必须复制从工作表阿行到工作表B.然而,我在交替行粘贴,如:复制一个工作表并粘贴到另一备用行中(Excel的VBA)
1 st row(Sheet A)-- 1 st row (Sheet B)
2nd row (Sheet A) --> 3rd row (Sheet B)
3rd row (Sheet A)--> 5th row(Sheet B)
这可能吗?
感谢您的帮助。
我必须复制从工作表阿行到工作表B.然而,我在交替行粘贴,如:复制一个工作表并粘贴到另一备用行中(Excel的VBA)
1 st row(Sheet A)-- 1 st row (Sheet B)
2nd row (Sheet A) --> 3rd row (Sheet B)
3rd row (Sheet A)--> 5th row(Sheet B)
这可能吗?
感谢您的帮助。
你可以试试这样的事情...
Sub CopyRows()
Dim sws As Worksheet, dws As Worksheet
Dim i As Long, lr As Long
Application.ScreenUpdating = False
Set sws = Sheets("Sheet1")
Set dws = Sheets("Sheet2")
lr = sws.UsedRange.Rows.Count
dws.Cells.Clear
sws.UsedRange.Copy dws.Range("A1")
For i = lr To 1 Step -1
dws.Rows(i).Insert
Next i
Application.ScreenUpdating = True
End Sub
编辑答案:
你可以试试这个方法,这将是更快足以从Sheet1的数据复制到Sheet2中。唯一的缺点是它将只复制Sheet1上的任何公式的值。
Sub CopyRows()
Dim sws As Worksheet, dws As Worksheet
Dim i As Long, ii As Long, j As Long
Dim x, y()
Application.ScreenUpdating = False
Set sws = Sheets("Sheet1")
Set dws = Sheets("Sheet2")
dws.Cells.Clear
x = sws.Range("A1").CurrentRegion.Value
ReDim y(1 To UBound(x, 1) * 2, 1 To UBound(x, 2))
For i = 1 To UBound(x, 1)
j = j + 2
For ii = 1 To UBound(x, 2)
y(j, ii) = x(i, ii)
Next ii
Next i
dws.Range("A1").Resize(UBound(y, 1), UBound(y, 2)).Value = y
End Sub
我很抱歉,但这并没有奏效。 – Sona123
什么没有工作?你是否能够理解代码,以便在需要时调整它。代码非常简单。它将所有数据从Sheet1复制到Sheet2,然后在Sheet2之间插入一行。或者在Sheet2上,你已经有了一些你不想用Sheet1数据替换的偶数行数据? – sktneer
你好,它确实听起来正是我所需要的。但是,当我运行这段代码似乎进入了一个无限循环 - 没有给出错误没有得到工作表更新或者Excel工作表变成“没有响应”。是否有任何原因 – Sona123