删除由文本string标识的dynamic范围内的重复值

col B中的文本“endofdata”标识单个工作表上多个范围的边界。 我试图逐步通过每个范围,并删除每个范围内的列E和F中的重复值。 我还调用一个例程,删除删除重复项时生成的空白行。 执行.removeduplicates时,最后一行“endofdata”总是被删除。

我试过了Do循环,但是失败了。 (它适用于第一个范围,但下一个范围失败)请build议如何使这项工作。 我应该使用什么样的循环? 我应该如何search“endofdata”string? 非常感谢你提前。

在这里输入图像说明

Sub RemoveDupsinRange() Dim LastRow As Long, i As Long, startRow, EndRow Call setSheets LastRow = wsQC.Cells(wsQC.Rows.Count, "A").End(xlUp).Row Debug.Print LastRow For i = LastRow To 1 Step -1 Do If wsQC.Cells(i, 2).Value = "endofdata" Then startRow = i End If i = i - 1 Loop Until wsQC.Cells(i, 2).Value = "endofdata" EndRow = i i = i - 1 Range(startRow & ":" & EndRow).Select Selection.removeduplicates Columns:=Array(5, 6), _ Header:=xlNo Call DeleteBlanks Next i End Sub 

我刚刚testing这个循环,它的工作。

 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