Devolver los artículos únicos utilizando VBA en Microsoft Excel
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 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 el código a continuación
Option Explicit Sub FindUniqueValues(SourceRange As Range, TargetCell As Range) 'Using advance filter for extacting unique items in the source range SourceRange.AdvancedFilter Action:=xlFilterCopy, _ CopyToRange:=TargetCell, Unique:=True End Sub Sub MacroRunning() 'Calling FindUniqueValues macro Call FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value)) End Sub
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]