Microsoft Excel'de VBA kullanarak benzersiz değerler bulma

Anonim

Bu yazıda, tanımlanan aralıktan benzersiz değerleri bulmak için özel fonksiyon oluşturacağız.

Bu örnek için ham veriler, A8:A21 aralığındaki ülke adının yinelenen girişlerinden oluşur.

Mantıksal açıklama

Aralıktan benzersiz değerleri çıkarmak için özel bir "UniqueItem" işlevi yarattık. Bu fonksiyon girdi olarak iki parametre alır. Birinci parametre, yinelenen verilerden oluşan aralıktır ve ikinci parametre, benzersiz koleksiyondaki benzersiz bir değerin dizin numarasını tanımlar.

Bu işlev, dizin numarasına göre aralıktan benzersiz değeri döndürür. İkinci parametre isteğe bağlı bir parametredir, ikinci parametre belirtilmezse işlev, tanımlanan aralıktaki benzersiz değer sayısını döndürür.

İkinci parametre için tanımlanan değer, aralıktaki benzersiz değer sayısından büyükse, işlev tarafından son benzersiz değer döndürülür.

Kod açıklaması

Hatada Devam Et Sonraki

InputRange'daki Her CellValue için

CUnique.Add CellValue.Value, CStr(CellValue.Value)

Sonraki

Hatada GoTo 0

Yukarıdaki kod, tanımlanan aralıktan benzersiz bir değer içerecek koleksiyon nesnesi oluşturmak için kullanılır. “On Error” ifadeleri hataları işlemek için kullanılır, çünkü kod koleksiyona yinelenen değerler koymaya çalıştığında koleksiyon bir hata oluşturur.

Lütfen kod için aşağıdan takip edin

 Seçenek Açık İşlev UniqueItem(Aralık Olarak GirdiAralığı, Tamsayı Olarak Opsiyonel ÖğeNo = 0) Varyant Olarak Dim CellValue As Range Dim CUnique As InputRange CUnique .Add CellValue.Value, CStr(CellValue.Value) Sonraki Hatada GoTo 0 'Koleksiyondaki benzersiz öğe sayısı alınıyor UCount = CUnique.Count If ItemNo = 0 O zaman 'Benzersiz öğenin döndürülmesi UniqueItem = UCount ElseIf ItemNo <= UCount Ardından 'Öğe numarasına dayalı benzersiz değer döndürme UniqueItem = CUnique(ItemNo) Else 'Son benzersiz değeri döndürme UniqueItem = CUnique(UCount) End If End Function 

Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın