0
私はX要素の配列を持っており、X = 50としましょう。Visual Basicの配列から5番目の要素をすべて削除するにはどうすればよいですか?
配列の5番目の要素をすべて削除するにはどうすればよいですか?
したがって、最終的な結果は....すべての5番目の要素を取り出したので、残された唯一の40素子のアレイであるべきである
私はX要素の配列を持っており、X = 50としましょう。Visual Basicの配列から5番目の要素をすべて削除するにはどうすればよいですか?
配列の5番目の要素をすべて削除するにはどうすればよいですか?
したがって、最終的な結果は....すべての5番目の要素を取り出したので、残された唯一の40素子のアレイであるべきである
以下のコードは、テストされていないが、それは後に、かなり近くなければなりません5つの要素で割り切れないすべてのコードが実行され、配列 'strSecond'に含まれます。
Dim strFirst(49) As String
Dim strSecond() As String
Dim ArrCount As Integer
ArrCount = 0
For i = 1 To 50
strFirst(i - 1) = i
Next
For i = 0 To 49
If (i + 1) Mod 5 <> 0 Then
ReDim Preserve strSecond(ArrCount)
strSecond(ArrCount) = strFirst(i)
ArrCount = ArrCount + 1
End If
Next
For i = 0 To UBound(strSecond)
Debug.Print strSecond(i)
Next
UPDATE II
これが最後の唯一の上限(多次元配列のために働くだろう - 以下
コードは現在テストされてい
UPDATE Preserveキーワードを使用すると、多次元配列の次元を変更できます) -
Dim strFirst(1, 49) As String
Dim strSecond() As String
Dim ArrCount As Integer
ArrCount = 0
For i = 1 To 50
strFirst(0, i - 1) = i
strFirst(1, i - 1) = i
Next
For i = 0 To 49
If (i + 1) Mod 5 <> 0 Then
ReDim Preserve strSecond(1, ArrCount)
'If you have more than two dimensions could write a loop to do this
'For j = 0 To UBound(strFirst,1) etc
strSecond(0, ArrCount) = strFirst(0, i)
strSecond(1, ArrCount) = strFirst(1, i)
ArrCount = ArrCount + 1
End If
Next
For i = 0 To UBound(strSecond, 2)
Debug.Print strSecond(0, i) + "-" + strSecond(1, i)
Next
これは正しい答えです...しかし、私はちょうど私の配列が多次元であり、ReDim Preserveは動作しないことに気付きました。各要素XにはY要素自体が含まれており、Preserveは多次元配列では機能しません。多次元配列でこれを行う方法はありますか? – phan
私は多次元配列を扱う答えを更新しました。 – ipr101