0
我想收集数组中的循环结果。理想情况下,我会保留第一个循环的结果并将其与第二个循环的结果进行比较。如果第二个循环的结果更好,那么我想保留第二个循环,将它与第三个循环等相比较。任何想法如何做到这一点?下面是我到目前为止的摘录:VBA阵列:根据条件添加元素
For Each ccell In pcrange
If ccell.Cells.Value = 0 Then
For Each agecell In agerange
If agecell.Cells.Value < 0.5 And agecell.Offset(0, 5).Value > 1 Then
tmpyr = agecell.Offset(0, 1)
srchyr = ccell.Offset(0, -6)
tmpval = agecell.Offset(0, 2)
tmpdiff = Abs(tmpyr - srchyr)
arrindx = arrindx + 1
End If
tmparray = Array(tmpdiff, tmpval) 'need redim to hold more than 2 values? why are subsequent elements empty?
ReDim Preserve tmparray(2 * arrindx - 1)
'minarr = IIf(tmparray(2) > tmparray(0), tmparray(1), tmparray(3)); want to extract corresponding tmpval from array onto sheet if tmpdiff is the min of the entire loop; change to store better result each time
Next
End If
Next
是的,你需要重新调暗以保存2个以上的值(或者在你的数组(tmpdiff,tmpval)位添加n个空值)。你提到随后的值是空的,你在哪里填充它们? – NickSlash 2013-04-06 22:50:06
对不起,我的无知,你最终的目标是什么?是否有'tmpdiff'的最小值? – glh 2013-04-07 04:31:07
嗨,尼克,当agecell循环运行并符合If条件时,我得到tmpdiff和tmpval的值。每次我得到一个tmpdiff和tmpval时,我都无法获得tmparray来存储以前的比较结果 - 我认为redim保留会有所帮助,但一次不会超过2个元素。 – Neelie 2013-04-07 08:01:23