【发布时间】:2021-08-12 14:39:19
【问题描述】:
我目前正在尝试使用 Excel VBA 清理大型数据集。数据集结构如下所示。
但是,我想让它看起来像这样,如果 A:D 列中的单元格都包含相同的值,则转置 E 列中的单元格。(并从 A:D 中删除重复的单元格)
这是我做的代码
Dim ws As Worksheet: Set ws = Sheets("test")
lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim j As Integer
j = 6
For i = 2 To lastrow
If (Range("A" & i).Value = Range("A" & i + 1).Value) And (Range("B" & i).Value = Range("B" & i + 1).Value) And (Range("C" & i).Value = Range("C" & i + 1).Value) Then
Cells(i, j).Value = Cells(i + 1, 5).Value
j = j + 1
End If
'Reset J back to 6 if columns A to D does not match previous
If (Range("A" & i).Value <> Range("A" & i + 1).Value) Or (Range("B" & i).Value <> Range("B" & i + 1).Value) Or (Range("C" & i).Value <> Range("C" & i + 1).Value) Then
j = 6
End If
Next i
如何做到这一点?
【问题讨论】:
-
数据是否总是像所有
ABCD进入一个块然后DEFG开始或它们混合一样排序? -
总是在一个块中排序。
-
但是,它也可以是
ABCD后跟XYCD(其中只有 A:B 列中的单元格具有不同的值)但我只想在所有 4 列中的单元格(来自 A :D) 包含相同的值。