このコードは、Excelスプレッドシートの列の重複行を削除するために作成しました。関数自体の中からwhileループを終了する方法、または可能かどうかはわかりません。ループに2番目の条件(などCounter < 100
)を追加したくないのは、必要以上に実行したくないからです。
Sub Deletion()
Dim Cond As Boolean
Dim Counter As Integer
Cond = True
Counter = 2
While Cond = True
RecDel (Counter)
Counter = Counter + 1
Wend
End Sub
Function RecDel(Varii As Integer)
Set CurrentCell = Workbooks("Duplicate.xls").Sheets("Sheet1").Cells(Varii, 2)
If CurrentCell.Value = CurrentCell.Offset(1, 0).Value And CurrentCell.Offset(1, 0).Value <> "" Then
Workbooks("Duplicate.xls").Sheets("Sheet1").Rows(Varii + 1).Delete
RecDel (Varii) 'Repeats deletion until this row and the next row are different
ElseIf CurrentCell.Offset(1, 0).Value = "" Then
Cond = False 'This can't change the global variable and break the loop
Else
End If
End Function