更新: これは結果のデータがどのように見えるかです:
arrComm rows 0-6
454-45-45 45345-3454 FIN Elected Finance Committee Details More Details
343-343-3 343-944244 COM Appointed Comm Committee Details More Details
arrComm added row 7 that has array of all members of that committee
This below array is named newMembers and 1 array for each row is added to the
arrComm with this code: arrComm(j,7) = newMembers
454-45-45 John S Smith Chair 2003 2005
454-45-45 Sara T Jones VP 2012 2013
454-45-45 Tim R Jane Pres 2011 2014
VBScript で既存の配列の各「行」に配列を追加するコードを作成しました。エラーは出ませんが、正しく行っているかどうかわかりません。新しい配列を配置した列からデータにアクセスしようとすると、何も得られません。Vbscript で既存の配列に配列を追加するための正しい構文を教えてもらえますか?
現在、各行をループして、配列を最後に追加しています。このような:
ReDim Preserve arrComm(UBound(arrComm), 7)
'Loop through Committee Array and add Members Array
Dim newMembers()
For j = 0 to UBound(arrComm)
'create a new array out of Members for each committee
cmt_key = arrComm(j,0)
'First find count of Members array that matches committee
y=0
For s = 0 to UBound(arrMembers)
If arrMembers(s,0) = cmt_key Then
y=y+1
End If
Next
'Next build new array only with those members that match committee
Redim newMembers(y,8)
'Now loop through Original Members Array and add to New Members Array
y=0
For s = 0 to UBound(arrMembers)
If arrMembers(s,0) = cmt_key Then
newMembers(y,0) = arrMembers(s,0)
newMembers(y,1) = arrMembers(s,1)
newMembers(y,2) = arrMembers(s,2)
newMembers(y,3) = arrMembers(s,3)
newMembers(y,4) = arrMembers(s,4)
newMembers(y,5) = arrMembers(s,5)
newMembers(y,6) = arrMembers(s,6)
newMembers(y,7) = arrMembers(s,7)
newMembers(y,8) = arrMembers(s,8)
y=y+1
End If
Next
'Now finally add newly created members array to Committee array
arrComm(j,7) = newMembers(y,8)
Next
更新: 上記のコードをよりよく説明してみましょう。1. ReDim Preserve arComm... は、既存の 7 列の配列に 8 番目の列を追加します。UBound(arrComm) は、既存の行の正しい量に設定されていることを確認します。
次に、newMembers という新しい配列を作成します。
次に、newMembers の長さを指定する必要があるため、(arrMembers) から newMembers をプルしている配列をループし、arrMembers から newMembers に配置される量のカウントを取得します。(y)
次に、この数を取得したら、(y) と 9 列で newMembers を Redim します
次に、arrMembers を調べて、基準に一致する金額を newMembers に取り込みます。
次に、新しく作成した newMembers という配列を arrComm 配列の最後の列に追加します。
次に、円を返して arrComm 配列の次の行に移動し、最初からやり直して、別の newMembers 配列を作成します。今回は行数が異なり、最後にそれを arrComm 配列の次の行に追加します。そして、1 行ごとに arrComm の最後の列に新しい配列を追加するまで、何度も繰り返します。