のは、私はVBAで配列内の特定のインデックスに新しい値を挿入し、すべてを1つのインデックスだけシフトする方法はありますか?
a(0) = 1
a(1) = f
a(2) = g
a(3) = 4
.
..
..
a(k) = a
をこの配列を持っていると私は(0)で、新しい値を挿入し、この
a(0) = newVal
a(1) = 1
a(2) = f
a(3) = g
a(4) = 4
.
..
..
a(k+1) = a
のように一つの指標ですべての値をシフトダウンする場合がありましょうこれを行う最速の方法でない場合は、これを行うショートコード
私は単純なforループでこれを行うことができますが、もっと効率的な方法があるのでしょうか?
例これは、私は以下のコードは、既存の人口のアレイに(可変NewVal
を通して)値を追加する
Dim temp()
Redim Preserve temp(0)
temp(0) = "newVal"
For i= lbound(a) + 1 to ubound(a) + 1
redim preserve temp(i)
temp(i) = a(i-1)
Next i
で、すべての文字列値を持つ気にしない場合は、十分な長さここにいましたが、是非、あなたはそれがどのように動作するかを知っています、これまでに何を試しましたか?あなたのコードの試行を共有してください –
ナー、あなたはループする必要があります! ;)これはプロシージャー内で簡単に再利用できるように行うことができますが、配列の各値を転送する必要があります。あなたのコードを掲示し、あなたが立ち往生している場合は突っ込む! ;)@ShaiRado:美しい朝!^^ – R3uK
あなたがこのようなことをしなければならないと前もって知っているなら、代わりにCollectionを使うべきです – Amorpheuses