Vba Excel宏查找&;按从底行到顶行的顺序替换列的重复值

Vba Excel宏查找&;按从底行到顶行的顺序替换列的重复值,vba,excel,Vba,Excel,我从互联网上获得了这个vba: 子匹配公司名称\u插入联系人\u电子邮件地址() Dim hold作为新系列 对于第(6)列中的每个单元格。单元格 关于GoTo-raa错误 如果不是celli.Value=空,则 保留。添加项:=celli.Row,键:=“”&celli.Value 如果结束 下一个切利 出错时继续下一步 raa: 范围(“J1:L1”)。偏移量(单元格行-1,0)。值=范围(“J1:L1”)。偏移量(保持(单元格值)-1,0)。值 下一步继续 端接头 代码查找和替换顺序是从

我从互联网上获得了这个vba:

子匹配公司名称\u插入联系人\u电子邮件地址()
Dim hold作为新系列
对于第(6)列中的每个单元格。单元格
关于GoTo-raa错误
如果不是celli.Value=空,则
保留。添加项:=celli.Row,键:=“”&celli.Value
如果结束
下一个切利
出错时继续下一步
raa:
范围(“J1:L1”)。偏移量(单元格行-1,0)。值=范围(“J1:L1”)。偏移量(保持(单元格值)-1,0)。值
下一步继续
端接头

代码查找和替换顺序是从上到下的,我需要它反过来。

您需要反转收藏中的项目。一种方法是添加一个新集合并按如下相反顺序传输:

raa:

Dim newHold as New Collection
For Each obj in hold
    If newHold.Count > 0 Then
        newHold.Add item := obj, before := 1
    Else
        newHold.Add item := obj
    End If
Next

Range("J1:L1").Offset(celli.Row - 1, 0).Value = Range("J1:L1").Offset(newHold(celli.Value) - 1, 0).Value

谢谢你的帮助,我试图合并你的代码,但得到一个错误:如果你想要更多的帮助,你将不得不提供更多的信息。错误是什么?您是否确保最后一行更新为“newHold”,而不仅仅是“hold”?