0

以下のコードを使用して、列内の重複を特定し、見つかった場合はすべての重複を削除しています。別のワークブックにまったく同じコードがあり、正常に動作しています。ただし、以下のコードをコンパイルすると、「添え字が範囲外です」というエラーが表示されます。ハイライトは "m = UBound(toDel2) to LBound(toDel2) Step -1. オンラインでヘルプを探し、何時間もトラブルシューティングを行ってきました。誰か助けてもらえますか?

    Dim toDel2(), m As Long
    Dim RNG2 As Range, Cell2 As Long
    Set RNG2 = Range("a1:a1000") 'set your range here

    For Cell2 = 1 To RNG2.Cells.Count
        If Application.CountIf(RNG2, RNG2(Cell2)) > 1 Then
            ReDim Preserve toDel2(m)
            toDel2(m) = RNG2(Cell2).Address
            m = m + 1
        End If
    Next
    For m = UBound(toDel2) To LBound(toDel2) Step -1
        Range(toDel2(m)).EntireRow.Delete
4

4 に答える 4

0

この行が問題です:

ReDim Preserve toDel2(m)

この行の前に何も設定mしていないため、まだ 0 です。この形式の を使用すると、配列内の項目ReDimを割り当てるかゼロにするように指示されます。m

于 2013-06-13T17:13:30.127 に答える