excel - 从二维数组中切片第一维
问题描述
我正在尝试对二维数组的第一维进行切片。数组变量是 y (1 to 36, 1 to 19) 我需要把它变成 y(1 to 12, 1 to 19) 要完成这样的任务,我必须像这样循环
If rw > 0 Then
ListBox1.AddItem
ReDim v(1 To n, 1 To UBound(y, 2))
Dim i As Long, j As Long
For i = 1 To n
For j = 1 To UBound(y, 2)
v(i, j) = y(i, j)
Next j
Next i
ListBox1.List = v()
n = 0
End If
有没有更简单的方法来完成这样的任务而没有太多的循环?
解决方案
你可以使用转置():
Dim v As Variant, v1 As Variant
v = Range("A1").Resize(36, 19).Value' just to fill a 36x19 array
v1 = Application.Transpose(v)
ReDim Preserve v1(1 To UBound(v, 2), 1 To 12)
v = Application.Transpose(v1)