Colección de citas famosas - Slogan de motivación - Seleccione aleatoriamente el contenido de las celdas en un rango específico en Excel sin repetirlo

Seleccione aleatoriamente el contenido de las celdas en un rango específico en Excel sin repetirlo

Si no prestas atención a las habilidades, puedes utilizar el método sin salida:

Sub R_DATA()

Dim Data_Range As Range

Atenuar sht como hoja de trabajo

Dim p, t, Data_Count, RND_r, RND_c

p = 0.7 'Especifique la proporción

t = Aplicación. WorksheetFunction.CountA("A1:T25200") 'Número de datos estadísticos

Set Data_Range = Range("A1:T25200") 'Especifica el área de datos de origen

Set sht = Hojas de trabajo ("Sheet2") 'Especifique el número aleatorio que se extraerá. Guardar hoja de trabajo

Do While Data_Count < Round(t * p, 0) ' Se repite cuando el recuento de valores es menor que la proporción especificada

RND_c = Int(Rnd() * 20 + 1) ' Escoger aleatoriamente coordenadas de fila

RND_r = Int(Rnd() * 25200 + 1) ' Escoger aleatoriamente coordenadas de columna

If sht.Cells(RND_r, RND_c) <> 1 And Cells(RND_r, RND_c) <> "" Entonces ' Determinar si se ha obtenido el valor y si está vacío

sht.Cells(RND_r , RND_c) = Cells(RND_r, RND_c) 'El valor se guarda en la misma posición en la tabla Hoja2

Data_Count = Data_Count + 1 ' Agrega 1 al recuento de valores

End If

Bucle

End Sub

Explicación, dado que la versión de EXCEL es 2003, el número máximo de filas es 65536. Si toma el 70% de los 490.000 datos, es imposible guardar las siguientes columnas. Por lo tanto, el código almacena estos datos en otra hoja de trabajo, Hoja2, en la misma ubicación que la tabla original.