¿Cómo utilizar VBA para resumir y sumar varias tablas idénticas?
Este problema se puede resolver utilizando métodos de programación de diccionario y de matriz. El programa de diccionario es más simple y la eficiencia de operación de la matriz es un poco más eficiente, pero la lógica es un poco más complicada. escribe el array:
sub macro 1()
dim arr, arr2, n, i, j, k, t, i2
n=0' Calcule el número total de filas
para cada t en la matriz("a", "b", "c")
n=n hojas("summary" & t). usedrange.rows.count
next t
redim arr(1 a n, 1 a 4) 'Matriz de resultados
n=0'Número de filas en matriz de resultados
para cada t en array("a", "b", "c")
arr2=sheets("summary" & t).usedrange
j=asc(t)-asc( "a") 2'Los datos están en la columna de la tabla de resultados
k=8 'Los datos están en la columna de la tabla original
para i2=2 a ubound(arr2)
para i=1 a n
si arr(i, 1)=arr2(i2, 1) entonces salir para
siguiente i
si arr (i, 1)lt gt; arr (i2, 1) entonces
n=n 1
i=n
arr(i, 1) =arr(i2, 1)
fin si
arr(i, j)= arr2(i2, k)
siguiente i
siguiente t
'Guardar los resultados
sheeta("summary").range ("a2").resize(n, 4)=arr
end sub