Encontrar valores únicos usando VBA no Microsoft Excel

Anonim

Neste artigo, criaremos uma função personalizada para encontrar valores exclusivos do intervalo definido.

Os dados brutos para este exemplo consistem em entradas duplicadas do nome do país no intervalo A8: A21.

Explicação lógica

Criamos uma função personalizada “UniqueItem” para extrair os valores exclusivos do intervalo. Esta função leva dois parâmetros como entrada. O primeiro parâmetro é o intervalo que consiste nos dados duplicados e o segundo parâmetro define o número do índice de um valor exclusivo na coleção exclusiva.

Esta função retorna o valor exclusivo do intervalo com base no número do índice. O segundo parâmetro é um parâmetro opcional, se o segundo parâmetro não for especificado, a função retorna o número do valor exclusivo no intervalo definido.

Se o valor definido para o segundo parâmetro for maior que o número de valores exclusivos no intervalo, o último valor exclusivo é retornado pela função.

Explicação do código

Em caso de erro, continuar próximo

Para cada CellValue em InputRange

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

Próximo

No erro GoTo 0

O código acima é usado para criar um objeto de coleção que conterá um valor único do intervalo definido. As declarações “On Error” são usadas para tratar erros, pois quando o código tenta colocar valores duplicados na coleção, a coleção irá gerar um erro.

Siga abaixo para o código

 Opção Explicit Função UniqueItem (InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Adicionando itens exclusivos à coleção a partir do intervalo definido Para Cada CellValue In InputRange CUnique .Add CellValue.Value, CStr (CellValue.Value) Next On Error GoTo 0 'Obtendo contagem de item exclusivo na coleção UCount = CUnique.Count If ItemNo = 0 Then' Retornando contagem de item exclusivo UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Retornando valor exclusivo com base no número do item UniqueItem = CUnique (ItemNo) Else' Retornando o último valor exclusivo UniqueItem = CUnique (UCount) End If End Function 

Se você gostou deste blog, compartilhe com seus amigos no Facebook. Além disso, você pode nos seguir no Twitter e no Facebook.

Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar nosso trabalho e torná-lo melhor para você. Escreva para nós no site de e-mail