比较并插入行(VBA)
我正在尝试我的Excel文件:
比较列G和H
– 如果他们有相同的文本 – >去下一行继续比较
– 如果它们没有相同的文本 – >在G之下插入一行,然后继续比较。
结果是这样的:
在运行macros之前 (第一列是G,第二列是H):
运行macros之后:
你能帮我吗?
非常感谢。
像这样的东西
Sub CompArray() Dim G Dim H Dim X Dim lngCnt As Long Dim lngMark As Long G = Range([g1], Cells(Rows.Count, "G").End(xlUp)) H = Range([H1], Cells(Rows.Count, "H").End(xlUp)) X = H For lngCnt = 1 To UBound(X, 1) If G(lngCnt - lngMark, 1) = H(lngCnt, 1) Then X(lngCnt, 1) = G(lngCnt - lngMark, 1) Else lngMark = lngMark + 1 X(lngCnt, 1) = vbNullString End If Next [g1].Resize(UBound(X), 1) = X End Sub
你可以select你想要查看的范围,然后遍历行。 比较单元格,如果它们不相同,请select正确的单元格。 然后插入新的单元格,并将所有内容移动到1个单元格下面的代码有点慢,因为它select整个列。 您可以更改比较语句以进行不同的比较
Dim rngCompare As Range Dim rowCount As Long Dim iCount As Long Set rngCompare = ActiveSheet.Columns("D:E") rowCount = rngCompare.Rows.Count For iCount = 1 To rowCount If StrComp(rngCompare.Cells(iCount, 1), rngCompare.Cells(iCount, 2), vbTextCompare) <> 0 Then rngCompare.Cells(iCount, 1).Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove End If Next iCount