我正在处理一个 Excel 2010 工作表,其中包含一些医生的姓名及其地址,但经常有 2 个姓名相同但地址不同。在这种情况下,我想将地址信息复制到与名字相同的行,但偏移量为 4 列。这是我想出的代码
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
部分代码,表示该对象不接受这个属性/方法
请记住,我今天开始使用 VBA 编程,所以如果您能给出解释回答,我将不胜感激。
尽量减少对激活和选择单元格的依赖 - 您可以将单元格分配给范围变量以使事情变得更容易。另外,您不需要复制单元格(除非您还想复制格式,例如颜色),而是使用它们的 .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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)