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.

ArrowMain

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.

ArrowOutput

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]