j = LBound(arrayTime)
Do Until j = UBound(arrayTime)
j = j + 1
b = b + 1
cnc = b + r
MsgBox cnc
If cnc > 7 Then
b = 0
r = 0
cnc = b + r
End If
numMins = Sheet5.Cells(cnc + 3, 2) - arrayTime(j)
If numMins < 0 Then
g = g + 1
ReArrangeArray arrayTime, j
'ReDim Preserve arrayTime(numrows - 1 + g)
'arrayTime(numrows - 1 + g) = arrayTime(j)
'MsgBox (arrayTime(numrows - 1 + g))
Else
Sheet5.Cells(cnc + 3, 2) = numMins
End If
Loop
ifステートメントがtrueの場合、配列の最後に配列の値を置き、その値を現在の場所から削除できます。コードは最後に追加するだけで、配列のサイズを12から13に増やします。配列をサイズ12のままにして、配列の最後に値を配置してからそれを削除するにはどうすればよいですかその元の位置?私は前面の配列値に触れたくありません。その価値を持ち、それを最後まで動かすだけです。 たとえば array(1,2,3,4,5) 文の場合は、3番目のループの jです。 配列(J)= 3 エンド・アレイが 配列でなければなりません(1,2,4,5,3)vba配列要素の削除
コード内にaj = j + 1カウンターがあるはずです – aggieman
Google Bubblesort。配列を並べ替える必要があります。 – vacip
[VBA配列の並べ替え機能?](http://stackoverflow.com/questions/152319/vba-array-sort-function)の重複の可能性があります。 – cxw