Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Excel VBA para hacer coincidir varios contenidos de una columna vertical de la hoja 2 según los nombres de la hoja 1?

¿Cómo utilizar Excel VBA para hacer coincidir varios contenidos de una columna vertical de la hoja 2 según los nombres de la hoja 1?

Sub GetData()

Dim arr, brr(), buf(), rlt()

Dim i As Long, j As Long, k As Largo, m Mientras Largo, n Mientras Largo, x Mientras Largo, y Mientras Largo

arr = Sheets("Sheet2").Range("a2:e13")

ReDim brr (LBound(arr, 2) a UBound(arr, 2), LBound(arr) a UBound(arr))

Para i = LBound(arr) a UBound(arr)

Si arr(i, 2) = Hojas("Hoja1").Range("b2") Entonces

Para j = LBound(arr, 2) a UBound(arr, 2)

brr(j, LBound(arr) + k) = arr(i, j)

Siguiente j

k = k + 1

Fin Si

Siguiente i

ReDim buf(LBound(brr, 2) a UBound(brr, 2), LBound(brr) a UBound(brr))

Para i = LBound(brr) a UBound(brr)

Para j = LBound(brr, 2) a UBound(brr, 2)

buf(j, i) = brrr(i, j)

Siguiente j

Siguiente i

m = LBound(buf)

n = LBound(buf) + 6 - 1 'Primeras 6 líneas

x = LBound(buf, 2) + 3 - 1

y = UBound(buf, 2)

ReDim rlt(m Para n, x Para y)

Para i = m Para n

Para j = x Para y

rlt(i, j) = buf(i, j)

Siguiente

Siguiente

Hojas("Hoja1").Range("b5:d10").ClearContents

Sheets(" Sheet1").Range("b5:d10") = rlt

End Sub

Ejecute el gráfico real: