Red de conocimiento informático - Aprendizaje de programación - Código de macro de Excel. Cómo implementar la transformación como se muestra en la figura, los requisitos son: transformación según el contenido como se muestra en la figura, el indicador se puede aumentar ② Se puede resumir automáticamente; ¡Gracias!

Código de macro de Excel. Cómo implementar la transformación como se muestra en la figura, los requisitos son: transformación según el contenido como se muestra en la figura, el indicador se puede aumentar ② Se puede resumir automáticamente; ¡Gracias!

Ventana del programa:

Datos de prueba:

Generar resultados:

Código completo del programa:

Opciones explícitas

Conversión de subformato()

Dim arr1, arr2, n&, i&, j&, jj& amp;, t

arr1 = Sheets(1). /p>

n = UBound(arr1) * (UBound(arr1, 2) - 4) 'Número de filas en la tabla de resultados

ReDim arr2(1 To n, 1 To 6)

'Encabezado

j = 1

Para cada t en Array(arr1(1, 1), arr1(1, 2), arr1(1, 3 ), "Nombre del indicador", "Valor de prueba", arr1(1, UBound(arr1, 2)))

arr2(1, j) = t

j = j + 1

Siguiente t

'Contenido

n = 1

For i = 2 To UBound(arr1)

Para j = 4 Para UBound(arr1, 2) - 1

Si arr1(i, j) <> """Entonces

n = n + 1

jj = 1

Para cada t en Array(arr1(i, 1), arr1(i, 2), arr1(i, 3), arr1(1, j), arr1 (i, j), arr1(i, UBound(arr1, 2)))

arr2(n, jj) = t

jj = jj + 1

Siguiente t

Fin si

Siguiente j

Siguiente i

'Guardar tabla

Hojas( 2).Activar

Usar Hojas(2).Range("a1").Resize(n, 6)

.Select

.Value = arr2

Terminar con

Fin del subtítulo