读取单元格并使用VBA将它们写入不同的列

时间:2014-04-21 08:34:11

标签: excel vba excel-vba

首先,如果你正在阅读这个问题,我真的很感谢你。

我的问题是我不能让Excel用VBA读取每一行中的单元格,如果它发现单元格中的数据与之前处理的相同,我希望它写在第一个找到的相同单元格的列旁边。

以下是我需要的一些图片:

[第一阶段] http://i61.tinypic.com/m8ekqg.png[/IMG] [需要做什么] http://i58.tinypic.com/260vltg.png[/IMG]

如果你能帮助我,我将非常感激。提前谢谢。

1 个答案:

答案 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