Code:
  Function Push(ByRef mArray, ByVal mValue)
    Dim mValEl

    If IsArray(mArray) Then
      If IsArray(mValue) Then
        For Each mValEl In mValue
          Redim Preserve mArray(UBound(mArray) + 1)
          mArray(UBound(mArray)) = mValEl
        Next
      Else
        Redim Preserve mArray(UBound(mArray) + 1)
        mArray(UBound(mArray)) = mValue
      End If
    Else
      If IsArray(mValue) Then
        mArray = mValue
      Else
        mArray = Array(mValue)
      End If
    End If
    Push = UBound(mArray)
  End Function
It is something I cooked up for my ASP application. I got sick of working around not having a push. It will push a single value onto an array, or push an array of values. I haven't hardened it, yet, but let me know what you think.