Devolver elementos únicos usando VBA en Microsoft Excel

Anonim

En este artículo, crearemos una macro para extraer valores únicos del rango definido.

Los datos sin procesar para este ejemplo consisten en entradas duplicadas de nombres de países en el rango A7: A21.

Hemos creado la macro "FindUniqueValues" para extraer valores únicos del rango definido. Esta macro se puede ejecutar haciendo clic en el botón "Enviar". Antes de hacer clic en el botón “Enviar”, tenemos que especificar la dirección del rango que contiene datos duplicados en la celda H9 y la dirección del destino donde debe aparecer la salida.

Explicación lógica

La macro "FindUniqueValues" toma dos objetos de rango como parámetros de entrada. El primer parámetro define el rango que contiene los datos duplicados y el segundo parámetro define la posición de la celda inicial que contendrá la salida. Esta macro no se puede llamar directamente ya que tenemos que especificar los parámetros, por lo que hemos creado una segunda macro "MacroRunning" para llamar a la macro.

La macro "MacroRunning" llama a la macro "FindUniqueValues" con el parámetro introducido por el usuario.

Explicación del código

SourceRange.AdvancedFilter Acción: = xlFilterCopy, _

CopyToRange: = TargetCell, Unique: = True

El método AdvancedFilter del objeto Range se utiliza para filtrar o copiar datos del rango en función de ciertos criterios. Para copiar solo los valores únicos, tenemos que establecer el parámetro Único de AdvancedFilter en True.

Siga a continuación para obtener el código

 Opción Explícita Sub FindUniqueValues ​​(SourceRange As Range, TargetCell As Range) 'Uso de filtro avanzado para extraer elementos únicos en el rango de origen SourceRange.AdvancedFilter Acción: = xlFilterCopy, _ CopyToRange: = TargetCell, Unique: = True End Sub Sub MacroRunning ()' Llamar a la macro FindUniqueValues ​​Llamar a FindUniqueValues ​​(Range (Range ("H9"). Value), Range (Range ("H10"). Value)) End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico