将行从一张纸复制到另一张

下面的脚本看起来应该可以工作,但是我在下面标记的行上得到了“Object defined”错误。 我找不到是什么原因造成的

Sub MailMerge() Sheets.Add.Name = "MailMerge" Dim MailMerge As Worksheet Set MailMerge = Sheets("MailMerge") Dim Rng As Range Dim i, index, lastrow As Long Dim Abstracts As Worksheet Set Abstracts = Sheets("Abstracts") lastrow = Abstracts.Cells(Rows.Count, 1).End(xlUp).row For i = 1 To lastrow Set Rng = Abstracts.Range("O" & i) If WorksheetFunction.CountA(Rng) >= 1 Then Abstracts.Range("A" & i).Resize(0, 14).Copy _ Destination:=MailMerge.Range("A" & i).Resize(0, 14) 'this is where the error is occuring End If Next End Sub 

有什么build议么?

resize不像OFFSET。 它会将范围的大小设置为规定的大小。 所以你将范围大小设置为0行。 它应该是1:

 Sub MailMerge() Sheets.Add.Name = "MailMerge" Dim MailMerge As Worksheet Set MailMerge = Sheets("MailMerge") Dim Rng As Range Dim i, index, lastrow As Long Dim Abstracts As Worksheet Set Abstracts = Sheets("Abstracts") lastrow = Abstracts.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastrow Set Rng = Abstracts.Range("O" & i) If WorksheetFunction.CountA(Rng) >= 1 Then Abstracts.Range("A" & i).Resize(1, 14).Copy _ Destination:=MailMerge.Range("A" & i).Resize(1, 14) 'this is where the error is occuring End If Next End Sub