【发布时间】:2015-04-13 20:01:23
【问题描述】:
我很好奇是否可以在循环的一次迭代中将多个列从现有数组复制到新数组。假设我们有以下一般示例:
Array1 在 column1 中包含 10,000 个元素,column2 中包含 10,000 个元素,第 3 列中包含 10,000 个元素,等等。
假设我想根据该信息生成一个新数组,但我只希望填充第 1 列和第 2 列。我可以通过使用正确尺寸的目标数组只循环一次来做到这一点吗?例如:
'Assume TargetArray has already been ReDimmed to the size of Array1 in the code prior
For i=0 to UBound(Array1)
TargetArray(x,1)= Array1(x,1)
TargetArray(x,2)=Array1(x,2)
Next
所以这可以一步完成,还是我必须为要添加到数组的每个维度创建一个循环。如上所述,每个循环执行两个操作是否可以节省速度(假设它有效)。
感谢您的所有帮助!
【问题讨论】:
-
您是否尝试过您在此处发布的代码?它看起来对我来说会起作用(或几乎会起作用)。要回答你的第二个问题,是的。当然,循环 10,000 个项目一次比循环 10,000 个项目两次或三次要快。
-
我试过了。这个例子可以工作,但我注意到我在某些维度中有一些空白值,这会导致奇怪的结果。我只是假设如果我将其强制为数据将遵循的已知完整列的大小。我担心我的逻辑有问题,而不是数据。 :)
-
我认为这可能是您的数据。你能定义“奇怪的结果”吗?
-
预期的数据行完全从目标数组中丢失。我现在没有代码,因为这是一个个人项目(我正在工作),但它让我感到沮丧几次尝试。我尝试将它们声明为变体和双打,但都无济于事。
标签: arrays excel vba multidimensional-array