/ Excel VBAで重複を削除する

Excel VBAで重複を削除する

以下では、 Excel VBA それ 重複を削除する.

状況:

列Aには10個の数字があります。これらの数字から重複を削除し、一意の数字をB列に配置したい

Excel VBAで重複を削除する

1.まず、4つの変数を宣言します。ブール型のtoAdd、Integer型のuniqueNumbers、Integer型のi、Integer型のjです。

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2.次に、最初の数が常に「一意」であるため、列Aの最初の数を列Bに書き込みます。

Cells(1, 2).Value = Cells(1, 1).Value

3. 2つの変数を初期化します。 列Bに1つの数値を追加したので、uniqueNumbersを値1で初期化します。次の数値も追加する必要があると仮定して、toAddをTrueに設定します(これは必ずしも当てはまりません)。

uniqueNumbers = 1
toAdd = True

2番目の数字が「ユニーク」かどうかを判断する必要があります。これは非常に簡単な方法で行うことができます。番号がまだ列Bにない場合にのみ、2番目の番号を列Bに追加する必要があります。

4.また、3番目の番号、4番目の番号などを確認する必要があります。これに対してFor Nextループを開始します。

For i = 2 To 10

5。 今、プログラムの最も重要な部分があります。 2番目の数値がB列の数値の1つと等しい場合(これまでのところ1つの固有の数値しかない)、この場合、この数値を追加したくないため、toAddをFalseに設定しました(ユニークではありません")。この時点では、uniqueNumbersは1になりますが、uniqueNumbersは完全なリストになります。このリスト全体を確認するには、別のFor Nextループが必要です。このリストのtoAddはFalseに設定され、番号は追加されません。次のコード行を追加します。

For j = 1 To uniqueNumbers
    If Cells(i, 1).Value = Cells(j, 2).Value Then
        toAdd = False
    End If
Next j

6。 toAddがTrueのままFalseに設定されていない場合にのみ、Excel VBAは数値をB列に追加する必要があります。同時に、一意の数値が1つ増えたのでuniqueNumbersを1増やします。次のコード行では、ジョブが完了します。

If toAdd = True Then
    Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value
    uniqueNumbers = uniqueNumbers + 1
End If

7.最後に、次の番号(3番目の番号)を追加する必要があると仮定して、toAddをTrueに設定します。再度これは必ずしも真実ではありません。

toAdd = True

8.ループを閉じるのを忘れないでください。

Next i

9.コマンドボタンにマクロを配置し、テストします。

結果:

重複結果を削除する

また読む: