删除由文本字符串标识的动态范围内的重复值

时间:2016-02-08 19:02:31

标签: excel excel-vba vba

col B中的文本“endofdata”标识单个工作表上多个范围的边界。我正试图逐步浏览每个范围并删除每个范围内的E和F列中的重复值。我还调用一个例程来删除删除重复项时生成的空行。执行.removeduplicates时,始终会删除带有“endofdata”的底行。

我尝试过Do循环,但它失败了。 (它适用于第一个范围但未能进入下一个范围)请建议如何使这项工作。我应该使用什么样的循环?我该如何搜索“endofdata”字符串?非常感谢你提前。

enter image description here

NULL

1 个答案:

答案 0 :(得分:1)

我刚测试了这个循环并且它有效。

Sub RemoveDupsinRange()

Dim LastRow As Long, i As Long, rStart As Range, rEnd As Range

Call setSheets

LastRow = wsQC.Cells(wsQC.Rows.Count, "A").End(xlUp).Row

Debug.Print LastRow

Set rEnd = wsQC.Cells(LastRow, 2)

For i = LastRow To 2 Step -1

    Do

        i = i - 1

        If wsQC.Cells(i, 2).Value = "endofdata" Then
            Set rStart = wsQC.Cells(i, 2)
        End If


    Loop Until wsQC.Cells(i, 2).Value = "endofdata"

    wsQC.Range(rStart.Offset(, -1), rEnd.Offset(, 4)).RemoveDuplicates Columns:=Array(5, 6), Header:=xlNo

    Set rEnd = rStart

    Call DeleteBlanks

Next i

End Sub