VBA ¿Cómo extraer datos no duplicados fila por fila y copiarlos a otra hoja de trabajo?
```
Sub ExtractUniqueData()
Dim wsSrc como hoja de trabajo, wsDest como hoja de trabajo
Atenuar la última fila a larga
Atenuar dict como objeto, rng como rango, celda como rango
Establecer la hoja de trabajo de origen y el destino hoja de trabajo.
Establecer wsSrc = ThisWorkbook. Hoja de trabajo("Hoja1")
Establecer wsDest = ThisWorkbook. Hoja de trabajo ("Página 2")
Determina el número de fila de la última fila de la hoja de trabajo de origen.
Última fila = wsSrc. celdas (wsSrc. RowNumber. Count, 1). final (xlArriba). Organizar
definición para crear un objeto de diccionario.
Set dict = CreateObject("Script.Dictionary")
dict.CompareMode = vbTextComp
"Are" clave de comparación que no distingue entre mayúsculas y minúsculas
Recorra cada fila de la hoja de trabajo de origen y agregue datos no duplicados al diccionario
Para cada rng en el rango wsSrc("A 1:A"& lastRow)
Si no está vacío (rng), entonces
Para cada celda en rng.cell
Si el diccionario (cell.value) no existe), entonces
dict. .item(cell.value)""
finalizará si...
siguiente celda
Finalizará si...
Siguiente rng
Copie los datos no duplicados del diccionario en la hoja de trabajo de destino
wsDest 1:A"&dict.count) = apply.transpose(clave del diccionario)
End-joiner
```
En este caso, asumimos que la columna de datos que se extraerá en la hoja de trabajo de origen es la columna "A". , leemos el libro de ejercicios.
Luego, usamos el método End(xlUp).` para determinar el número de fila de la última fila en la hoja de trabajo de origen. A continuación, creamos un objeto de diccionario y luego lo iteramos. cada fila de la hoja de trabajo de origen y agregar datos no duplicados al diccionario
Después de agregar todos los datos no duplicados, podemos copiar los valores clave en el diccionario (es decir, datos no duplicados) en la columna "A" de la hoja de trabajo de destino. Tenga en cuenta que debido a que la matriz debe organizarse horizontalmente, los valores clave en el diccionario están organizados verticalmente, por lo que utilizamos la función Transponer de la aplicación. para convertirlos en una disposición horizontal y luego copiarlos a la hoja de trabajo de destino
.