Excel 将电子表格中同一列中的两行单元格与下一行单元格进行比较时,基于重复值删除行

Excel 将电子表格中同一列中的两行单元格与下一行单元格进行比较时,基于重复值删除行,excel,vba,Excel,Vba,我试图从一个非常大的电子表格中删除(大部分)重复的行 如果每行两个单元格中的值相同,我可以判断该行是重复的 以下是一个例子: 1 a ewq 1 e weq 1 h ewq 2 b ddsfa 2 b as 2 i d 3 c fdsa 3 f ads 4 d fd 4 g as 在本例中,第四行和第五行是重复的,因为列“A”和列“B”中的值相同。决定值总是在相同的列中找到 我想根据复制状态去掉第四行或第五行,并将

我试图从一个非常大的电子表格中删除(大部分)重复的行

如果每行两个单元格中的值相同,我可以判断该行是重复的

以下是一个例子:

1   a   ewq
1   e   weq
1   h   ewq
2   b   ddsfa
2   b   as
2   i   d
3   c   fdsa
3   f   ads
4   d   fd
4   g   as
在本例中,第四行和第五行是重复的,因为列“A”和列“B”中的值相同。决定值总是在相同的列中找到

我想根据复制状态去掉第四行或第五行,并将行上移

我甚至不确定这是否接近,但这是我到目前为止得到的(我得到了一个不匹配错误):

Sub-MasterRemoveDuplicates()
将主控形状设置为工作表
Application.ScreenUpdating=False
Application.DisplayAlerts=False
Set Master=工作簿(“Master.csv”)。工作表(“Master”)
最后=1
对于i=1到18211
如果范围(“A”&i)和范围(“B”&i)范围(“A”&(i+1))和范围(“B”&(i+1)),则
工作表(“主”)。行(最后)。删除移位:=xlShiftUp
Last=i+1
主人,激活
如果结束
接下来我
MsgBox“已完成!”,vbInformation“
重置\u设置:
Application.ScreenUpdating=True
Application.DisplayAlerts=True
端接头
任何关于如何实现这一目标的想法都将不胜感激


注意:所有内容都在同一张工作表中。

您的if语句有错误

试试这个:

    If Range("A" & i) <> Range("A" & (i + 1)) And Range("B" & i) <> Range("B" & (i + 1))    Then
如果范围(“A”&i)范围(“A”&i+1”)和范围(“B”&i)范围(“B”&i+1”),则

您正在尝试重新发明轮子。有一个现成的RemoveDuplicates命令

Sub MasterRemoveDuplicates()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    With Workbooks("Master.csv").Worksheets("Master")

        With .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp).Offset(0, 2))

            .RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo

        End With

    End With

    MsgBox "Completed!", vbInformation, ""

reset_settings:
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub

哇!谢谢你!我知道我想得太多了。我必须做的唯一更正是将“.Offset(0,1)”更改为“.Offset(0,2)”,这样就可以删除行的整个使用部分(在上面的示例中,有3列包含信息),而不仅仅是前两列。对于阅读此内容的任何人,“Offset”中的最后一个值将是要清除的行中已用单元格的上限。再次感谢!谢谢@Jimmy M!我犯了一个愚蠢的错误……我试着用修复程序运行它,但再也没有错误了。不幸的是,我的劣质代码删除了比预期更多的内容。既然user10862412的代码有效,我就放弃我的代码,继续他的。再次感谢你的帮助!
Sub MasterRemoveDuplicates()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    With Workbooks("Master.csv").Worksheets("Master")

        With .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp).Offset(0, 2))

            .RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo

        End With

    End With

    MsgBox "Completed!", vbInformation, ""

reset_settings:
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub