web-dev-qa-db-ja.com

変数配列VBAに値を追加する

"customers" and "dollar amount"tableを持つcolumnをループしようとしています。ループが"greg" or "henry"と呼ばれるcustomerを見つけた場合、彼の"dollar amount"をサイズが不明な配列に追加します。

誰か助けてくれますか?

16
Trung Tran

サイズが不明である場合、要素の数が不明であることを意味する場合、動的配列を使用できます。

Dim aArray() As Single ' or whatever data type you wish to use
ReDim aArray(1 To 1) As Single
If strFirstName = "henry" Then
    aArray(UBound(aArray)) = 123.45
    ReDim Preserve aArray(1 To UBound(aArray) + 1) As Single
End If

Ubound(aArray)は、配列がディメンション化されていない場合にエラーをスローするため、要素を追加することから始めます。これにより、テキストの最後に空の要素が残るため、コードでそのことを説明する必要があります。 aArray(Ubound(aArray)-1)は、配列の最後の有効な要素を提供します。

29
Steve Rindsberg
Private Sub ArrayMy(DataRange)
  Dim DataIndex() As String
  i = 0
  On Error Resume Next
  ReDim DataIndex(0)
  For Each c In DataRange
      DataIndex(i) = c
      i = i + 1
      ReDim Preserve DataIndex(i)
  Next
End Sub
1
Pawel