我已经看了很多,但是还没有找到答案。我有一组数据,需要在其中找到第一个串联在A和B列中的唯一值,然后移到下面的行,从C:E列复制信息,并将其粘贴到上面的行中。然后重复下一个唯一值。
我可能可以弄清楚复制和粘贴的部分,但是还没有弄清楚如何找到每个唯一值及其位置。
下面是数据样本。因此,基本上我需要先找到AustriaEUR,移动到下一行,复制到第1,2和3列的值,然后粘贴到上面的行中,然后再移动到澳大利亚,依此类推。
Country Currency 1 2 3
Austria EUR null null null
Austria EUR 8.16 8.39 8.73
Austria EUR 7.94 8.16 8.5
Austria EUR 7.26 7.49 7.83
Austria EUR 6.24 6.47 7.06
Australia AUD null null null
Australia AUD 8.37 8.59 8.93
Australia AUD 8.14 8.37 8.71
Australia AUD 7.46 7.69 8.03
Australia AUD 7.35 7.58 7.91
Australia AUD 6.47 6.53 6.61
Belgium EUR null null null
Belgium EUR 8.16 8.39 8.73
Belgium EUR 7.94 8.16 8.5
Belgium EUR 7.26 7.49 7.83
Belgium EUR 6.24 6.47 7.06
Belgium EUR 4.87 5.1 5.43
Belgium EUR 4.15 4.37 4.71
Belgium EUR 3.93 4.15 4.48
任何帮助将不胜感激。
答案 0 :(得分:1)
不是最干净的解决方案,而是解决方案。
创建列A和B的串联值,然后在照顾了第一行之后,我们向下移动各行以查找下一个唯一值。注意-目前仅为20行数据设置此设置。您需要lastrow
才能使其动态化。
Sub Test()
Dim myuniquevalue As String, nextvalue As String
myuniquevalue = Cells(2, 1).Value & Cells(2, 2).Value
Range(Cells(2, 3), Cells(2, 5)).Value = Range(Cells(3, 3), Cells(3, 5)).Value
For i = 2 To 20
nextvalue = Cells(i, 1).Value & Cells(i, 2).Value
If myuniquevalue <> nextvalue Then
myuniquevalue = nextvalue
Range(Cells(i, 3), Cells(i, 5)).Value = Range(Cells(i + 1, 3), Cells(i + 1, 5)).Value
End If
Next i
End Sub