İçindekiler
Bu eğitim size VBA'daki bir Diziden kopyaları nasıl kaldıracağınızı öğretecektir.
Yinelenenleri Kaldır
Bir VBA Dizisinden kopyaları kaldırmanın en kolay yolu, dizi değerlerini bir VBA Koleksiyonuna atamak ve ardından değerleri bir Diziye geri iletmektir. Koleksiyonlar yinelenen değerlere izin vermez ve bu nedenle bir Koleksiyon kullanarak yinelenenleri bir diziden kaldırabiliriz. Bu görevi gerçekleştirmek için bir işlev oluşturduk:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | Varyant Olarak İşlev ArrayRemoveDups(MyArray As Variant)Dim nİlk Kadar Uzun, nSon Kadar Uzun, Ben Kadar UzunÖğeyi Dize Olarak KarartDim arrTemp() Dize OlarakDim Coll Yeni Koleksiyon Olarak'İlk ve Son Dizi Konumlarını AlınnFirst = LBound(MyArray)nLast = UBound(MyArray)ReDim arrTemp(nFirst to nLast)'Diziyi Dizeye Dönüştüri için = nİlk ila nSonarrTemp(i) = CStr(MyArray(i))sonraki ben'Geçici Koleksiyonu DoldurHatada Devam Et Sonrakii için = nİlk ila nSonColl.Add arrTemp(i), arrTemp(i)sonraki benHata.TemizleHatada GoTo 0'Diziyi Yeniden BoyutlandırnLast = Coll.Count + nFirst - 1ReDim arrTemp(nFirst to nLast)'Diziyi Dolduri için = nİlk ila nSonarrTemp(i) = Coll(i - nFirst + 1)sonraki ben'Çıktı DizisiArrayRemoveDups = arrTempBitiş İşleviAlt ArrTest()Dim strNames(1 - 4) As StringDim outputArray() As StringDim kadar uzunÖğeyi Varyant Olarak Karart'Başlangıç Dizi Değerlerini AyarlastrNames(1) = "Shelly"strNames(2) = "Steve"strNames(3) = "Neema"strNames(4) = "Steve"'Çağrı Dup İşlevioutputArray = ArrayRemoveDups(strNames)Anında Pencereye çıkış değerleri (CTRL + G)outputArray içindeki her öğe içinHata ayıklama. Öğeyi yazdırSıradaki eşyaAlt Bitiş |
Not: Örnekte Dizimizi 1'den (0 değil) başlatmaya zorladık. Diziniz 0'dan başlıyorsa, kodu biraz değiştirmeniz gerekecektir.
Dizi içeriğini bir dizgeye dönüştürdüğümüze dikkat edin. Gerekirse, işlem tamamlandıktan sonra dizeleri tekrar tam sayılara dönüştürebilirsiniz.