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