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 개 이상의 값을 보관하기 위해 다시 희미하게해야합니다 (또는 Array (tmpdiff, tmpval) 비트 내에 n 개의 빈 값을 추가하십시오). 후속 값이 비어 있음을 언급하고, 어디에 채우고 있습니까? – NickSlash
내 무지 때문에 죄송합니다. 최종 목표는 무엇입니까? 그것은'tmpdiff '의 분을 가졌습니까? – glh
안녕하세요 닉, 나는 agecell 루프가 실행되고 If 조건을 충족하면 tmpdiff 및 tmpval에 대한 값을 얻습니다. tmpdiff 및 tmpval을 얻을 때마다 tmparray에 이전 결과를 저장할 수 없기 때문에 redim preserve가 도움이 될 것이라고 생각했지만 한 번에 두 개 이상의 요소를 보유하지는 않습니다. – Neelie