我怎样才能复制一行数据,然后粘贴一个偏移量

我正在开发一个有一些医生姓名和地址的Excel 2010表格,但是经常有两个相同的名字,但是有不同的地址。 在这种情况下,我想将地址信息复制到与第一个名字相同的行,但是有4个collumns的偏移量。 下面是我提出的代码

Sub OraganizadorEndereços() ActiveCell.Select If ActiveCell.Value = ActiveCell.Offset(1, 0).Value _ Then ActiveCell.Offset(1, 0).Activate: _ Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 4)).Copy: _ ActiveCell.Offset(-1, 0).Select: _ ActiveCell.Offset(0, 5).Paste _ Else ActiveCell.Offset(1, 0).Select End Sub 

但是我得到一个错误

 ActiveCell.Offset(0, 5).Paste _ Else ActiveCell.Offset(1, 0).Select 

代码的一部分,说这个obeject不接受这个属性/方法

请记住,我今天开始在VBA编程,所以如果你可以回答一个解释,我将不胜感激。

尽量less依赖激活和select单元格 – 您可以将单元格分配给范围variables以使事情变得更容易。 此外,你不需要复制单元格(除非你也想复制格式,例如颜色),使用他们的.Value代替:

 Sub OraganizadorEndereços() Dim rngTest as Range 'Define rngTest variable as Range Set rngTest = Activecell 'Set rngTest to be the ActiveCell If rngTest.Value = rngTest.Offset(1, 0).Value Then 'Replace the .Value of the columns to right with the .Value of the row below Range(rngTest.Offset(0,5), rngTest.Offset(0,8).value = Range(rngTest.Offset(1, 1), rngTest.Offset(1, 4)).Value Else Set rngTest = rngTest.Offset(1,0) 'Set rngTest to be the next line down End If End Sub 

尝试下面的代码:

 Sub OraganizadorEndereços() Dim rng As Range Dim offsetRng As Range Set rng = ActiveCell rng.Select Set offsetRng = rng.Offset(1, 0) If rng = offsetRng Then offsetRng.Offset(0, 1).Resize(, 4).Copy offsetRng.Offset(0, 5) rng.Offset(1, 0).Activate Else rng.Offset(1, 0).Select End If End Sub