Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo ordenar en Vba

Cómo ordenar en Vba

Algunos requisitos de clasificación especiales no pueden resolverse con las funciones estándar de EXCEL. En este momento, puede usar VBA para corresponder. Por ejemplo: Existe una tabla de datos original, como se muestra en la figura:

Se establece una tabla de datos resumidos clasificados en base a estos datos originales, como se muestra en la figura:

La El requisito es que cuando los datos de la tabla detallada cambien, cuando desee que la tabla de resumen se ordene automáticamente. Este requisito no puede automatizarse mediante clasificación manual. Estos requisitos sólo pueden depender de VBA. Primero, compila un programa de clasificación. El código es el siguiente:

Sub sort()

Dim mYsheet As String

Dim arr(1 To 3, 1). A 2)

Dim I, J, K como entero

Dim M_S1 como cadena 'Nombre del área de intercambio de almacenamiento

Dim M_S2 como doble 'Cantidad de ventas de intercambio de almacenamiento

mYsheet = "Ranking resumido"

Hojas(mYsheet).Seleccione

'Leer los valores en la matriz

Para I = 1 a 3

Para J = 1 a 2

arr(I, J) = Celdas(I 1, J 1)

Siguiente J

Siguiente I

'Ordenar

Para I = 1 a 2

Para J = I 1 a 3

Si arr(I, 2) lt; arr(J, 2) Entonces

? M_S1 = arr(I, 1)

? /p>

? arr(I, 1) = arr(J, 1)

? arr(I, 2) = arr(J, 2)

? (J, 1 ) = M_S1

? arr(J, 2) = M_S2

Finalizar si

Siguiente J

Siguiente I

'Almacena los resultados ordenados de la matriz en celdas

Para I = 1 a 3

Celdas((I 1), 2) = arr(I , 1)

Next I End Sub

Cree un programa de activación de eventos para cambios de contenido de celda. El código es el siguiente: (Nota: este código debe colocarse en la tabla de datos original. )

Sub hoja de trabajo privada_cambio(ByVal objetivo como rango) Si target.Column lt;= 4 Entonces

?SortEnd If

Fin Sub