2011-08-12 3 views

答えて

1

以下のコードは、テストされていないが、それは後に、かなり近くなければなりません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 
+0

これは正しい答えです...しかし、私はちょうど私の配列が多次元であり、ReDim Preserveは動作しないことに気付きました。各要素XにはY要素自体が含まれており、Preserveは多次元配列では機能しません。多次元配列でこれを行う方法はありますか? – phan

+0

私は多次元配列を扱う答えを更新しました。 – ipr101

関連する問題