Microsoft Excel'de VBA kullanarak benzersiz öğeleri döndürün

Anonim

Bu yazımızda, tanımlanan aralıktan benzersiz değerler çıkarmak için bir makro oluşturacağız.

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

Tanımlanan aralıktan benzersiz değerler çıkarmak için “FindUniqueValues” makrosu oluşturduk. Bu makro, “Gönder” düğmesine tıklanarak çalıştırılabilir. “Gönder” düğmesine tıklamadan önce, H9 hücresinde yinelenen verileri içeren aralığın adresini ve çıktının görünmesi gereken hedefin adresini belirtmeliyiz.

Mantıksal açıklama

“FindUniqueValues” makrosu, giriş parametreleri olarak iki aralık nesnesi alır. İlk parametre, yinelenen verileri içeren aralığı tanımlar ve ikinci parametre, çıktıyı içerecek olan başlangıç ​​hücresinin konumunu tanımlar. Bu makro, parametreleri belirtmemiz gerektiği için doğrudan çağrılamaz, bu yüzden makroyu çağırmak için ikinci makroyu “MacroRunning” oluşturduk.

“MacroRunning” makrosu, kullanıcı tarafından parametre girişi yapılarak “FindUniqueValues” makrosunu çağırır.

Kod açıklaması

SourceRange.AdvancedFilter Eylem:=xlFilterCopy, _

CopyToRange:=TargetCell, Benzersiz:=True

Range nesnesinin AdvancedFilter yöntemi, belirli bir kritere göre aralıktaki verileri filtrelemek veya kopyalamak için kullanılır. Yalnızca benzersiz değerleri kopyalamak için AdvancedFilter'ın Unique parametresini True olarak ayarlamalıyız.

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

 Seçenek Explicit Sub FindUniqueValues(SourceRange As Range, TargetCell As Range) 'Kaynak aralığında benzersiz öğeleri çıkarmak için gelişmiş filtre kullanma SourceRange.AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=TargetCell, Unique:=True End Sub Sub () MacroRunning FindUniqueValues ​​makrosunu çağırma FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value)) End Sub'ı çağırın 

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