我正在尝试使用我的excel文件:
比较G列和H列
- 如果他们有相同的文字 - >转到下一行继续比较
- 如果他们没有相同的文字 - >在G下方插入一行,然后继续比较。
结果将是:
在运行宏之前(第一列是G,第二列是H):
运行宏后:
请帮帮我吗?
非常感谢。
答案 0 :(得分:0)
像这样的东西
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
答案 1 :(得分:0)
您可以选择要查看的范围,然后循环显示行。 比较单元格,如果它们不相同,请选择正确的单元格。 然后插入新单元格并将所有内容移至1个单元格 这段代码有点慢,因为它选择了整个列。 您可以更改比较语句以进行不同的比较
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