将值添加到变量数组VBA

时间:2012-09-30 18:34:22

标签: arrays vba variables dynamic

我正在尝试遍历table column "customers" and "dollar amount"。如果我的循环找到名为customer的{​​{1}},我想将他的"greg" or "henry"添加到未知大小的数组中。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:26)

如果大小未知,则表示元素数量未知,您可以使用动态数组。

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)将为您提供数组中的最后一个有效元素。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我认为最好使用 listArray 对象:

Dim list, name as variant
Set list = CreateObject("System.Collections.Arraylist")

For i = 1 to Last then  ''Loop in the range
    If strName = "Henry" then
        list.Add ValueToAdd  ''add to the list
    End if 
Next

然后你可以在列表中循环

For Each name in List
    Msgbox name
Next