Matriz bidimensional del rango [cerrado]
Tengo datos de texto en la hoja de cálculo de Excel en las celdas B6:H14
.
Algunas filas tendrán 2 celdas con contenido, mientras que otras tendrán 4 y algunas tendrán 7. ¿Cómo las copio en una matriz bidimensional? Ya conozco las dimensiones y, por lo tanto, estoy de acuerdo con que las dimensiones no se declaren como código dinámico.
¿Necesito usar un bucle (que actualmente planeo usar)?
¿O hay una manera más fácil/elegante?
Aceptado
Suponiendo que su hoja de cálculo se vea así
Hay una manera realmente fácil de colocar eso en una matriz 2D.
Dim arr as Variant
arr = Range("B6:H14").Value
La forma más sencilla de imprimir esta matriz en una hoja de cálculo
Sub PrintVariantArr()
Dim arr As Variant
arr = Range("B6:H14")
Range("B16").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
End Sub
O puede iterar/recorrer la matriz
Sub RangeToArray()
Dim arr As Variant
arr = Range("B6:H14").Value
Dim r As Long, c As Long
r = 16
c = 2
Dim i, j
For i = LBound(arr, 1) To UBound(arr, 1)
For j = LBound(arr, 2) To UBound(arr, 2)
Cells(r, c) = arr(i, j)
c = c + 1
Next j
c = 2
r = r + 1
Next i
End Sub
Y su matriz se imprimió nuevamente en la hoja de cálculo.