Excel VBA'da Yinelenenleri Kaldır - Kolay Excel Makroları

İçindekiler

Aşağıda bir programa bakacağız Excel VBA'sı o kopyaları kaldırır.

Durum:

A sütununda 10 numaramız var. Bu numaralardan kopyaları çıkarmak ve benzersiz sayıları B sütununa yerleştirmek istiyoruz.

1. İlk önce dört değişken tanımlıyoruz. toAdd tipi Boolean, uniqueNumbers tipinde Integer, i tipinde Integer ve j tipinde Tamsayı.

Boolean, uniqueNumbers As Integer, i As Integer, j As Integer olarak eklemek için Dim

2. Ardından, ilk sayı her zaman 'benzersiz' olduğundan, A sütununun ilk numarasını B sütununa yazarız.

Hücreler(1, 2).Değer = Hücreler(1, 1).Değer

3. İki değişkeni başlatıyoruz. B sütununa bir sayı ekledik, bu yüzden uniqueNumbers'ı 1 değeriyle başlatıyoruz. Bir sonraki sayının da eklenmesi gerektiğini varsayarak (bu elbette doğru olmak zorunda değil) toAdd'ı True olarak ayarladık.

benzersizSayılar = 1
toAdd = Doğru

İkinci sayının 'benzersiz' olup olmadığını belirlememiz gerekiyor. Bu çok kolay bir şekilde yapılabilir. Yalnızca sayı zaten B sütununda değilse, ikinci sayının B sütununa eklenmesi gerekir.

4. Bunu üçüncü sayı, dördüncü sayı vb. için de kontrol etmemiz gerekiyor. Bunun için For Next döngüsüne başlıyoruz.

i = 2 ila 10 için

5. Şimdi programın en önemli kısmı geliyor. İkinci sayı B sütunundaki sayılardan birine eşitse (şimdiye kadar yalnızca bir benzersiz numaramız var), Ekle'yi Yanlış olarak ayarladık çünkü bu durumda bu sayıyı eklemek istemiyoruz! ('benzersiz' değildir). Şu anda uniqueNumbers hala 1'e eşittir, ancak uniqueNumbers tam bir liste olabilir. Bu listenin tamamını kontrol etmek için başka bir For Next döngüsüne ihtiyacımız var. Yine: Eklemek istediğimiz sayı bu listedeki sayılardan birine eşitse, toAdd seçeneği False olarak ayarlanacak ve sayı eklenmeyecektir. Aşağıdaki kod satırlarını ekleyin:

j = 1 için uniqueNumbers'a
Eğer Cells(i, 1).Value = Cells(j, 2).Value O zaman
toAdd = Yanlış
Bitir
sonraki j

6. Yalnızca toAdd hala True ise ve False olarak ayarlanmamışsa, Excel VBA'nın sayıyı B sütununa eklemesi gerekir. Aynı zamanda, uniqueNumbers'ı 1 artırıyoruz çünkü artık bir benzersiz numaramız daha var. Aşağıdaki kod satırları işi tamamlar:

Eğer toAdd = True ise
Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value
uniqueNumbers = uniqueNumbers + 1
Bitir

7. Son olarak, bir sonraki sayının (üçüncü sayı) eklenmesi gerektiğini varsayarak Add to True olarak ayarladık. Yine bu mutlaka doğru değildir.

toAdd = Doğru

8. Döngüyü kapatmayı unutmayın.

sonraki ben

9. Makronuzu bir komut düğmesine yerleştirin ve test edin.

Sonuç:

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave