首先,如果你正在阅读这个问题,我真的很感谢你。
我的问题是我不能让Excel用VBA读取每一行中的单元格,如果它发现单元格中的数据与之前处理的相同,我希望它写在第一个找到的相同单元格的列旁边。
以下是我需要的一些图片:
[第一阶段] http://i61.tinypic.com/m8ekqg.png[/IMG] [需要做什么] http://i58.tinypic.com/260vltg.png[/IMG]
如果你能帮助我,我将非常感激。提前谢谢。
答案 0 :(得分:0)
尝试以下代码。您可能需要更新范围引用等。
Sub ProcessData()
Dim data As Range, arr() As Variant, i As Long, rw As Long
Set data = Range("A2:C9")
arr() = data
rw = 2
data.ClearContents
For i = 1 To data.Rows.Count
If i = 1 Then
Range("A" & rw) = arr(i, 1)
Range("B" & rw) = arr(i, 2)
Range("C" & rw) = arr(i, 3)
ElseIf arr(i, 1) <> arr(i - 1, 1) Then
rw = rw + 1
Range("A" & rw) = arr(i, 1)
Range("B" & rw) = arr(i, 2)
Range("C" & rw) = arr(i, 3)
Else
With Range("A" & rw).End(xlToRight)
.Offset(0, 1) = arr(i, 2)
.Offset(0, 2) = arr(i, 3)
End With
End If
Next i
End Sub