arrays - 几个不连续的列到数组中
问题描述
我尝试尽可能有效地将 4 列加载到数组中。
我试过了
dim ar
ar = sheet1.Range("C2:C2681,G2:G2681,J2:J2681,T2:T2681")
但只有第一列被加载到数组中。
我也试过
ar = .Range("C2:T" & lastRow)
ar = Application.Index(ar, , Array(1, 5, 19))
但这给了我一个类型不匹配的错误。
为此目的有什么聪明的技巧吗?
解决方案
ReDim with Preserve 只允许您修改最后一个等级,但您可以先移动数组元素的值。
dim ar as variant, i as long
ar = sheet1.Range("C2:T2681").value
for i=lbound(ar, 1) to ubound(ar, 1)
ar(i, 2) = ar(i, 5) 'move column G to 2nd
ar(i, 3) = ar(i, 8) 'move column J to 3rd
ar(i, 4) = ar(i, 18) 'move column T to 4th
next i
redim preserve ar(lbound(ar, 1) to ubound(ar, 1), lbound(ar, 2) to 4)