小妹刚刚接触EXCEL VBA,想动态定义数组,如 Dim ArrayofName() As Currency
在程序中用到ArrayofName(i)=cells(2,3).value 总提示subscript out of range
如果Dim ArrayofName(100) As Currency就没有问题,可是这样会造成浪费,我试着用
ReDim ArrayofName(i)也不好用
各位大虾帮我解决一下好吗?不胜感激!
...全文
21914打赏收藏
在EXCEL VBA中如何动态定义数组
小妹刚刚接触EXCEL VBA,想动态定义数组,如 Dim ArrayofName() As Currency 在程序中用到ArrayofName(i)=cells(2,3).value 总提示subscript out of range 如果Dim ArrayofName(100) As Currency就没有问题,可是这样会造成浪费,我试着用 ReDim ArrayofName(i)也不好用 各位大虾帮我解决一下好吗?不胜感激!
Sub SumArray()
Dim i As Integer, j As Integer, k As Integer
Dim ArrayOfName() As String
k = 1
ReDim ArrayOfName(k)
ArrayOfName(1) = Sheets(2).Cells(7, 2).Value
For i = 8 To 768
For j = 1 To k
If Not (ArrayOfName(k) = Sheets(2).Cells(i, 2).Value) Then
k = k + 1
ArrayOfName(k) = Sheets(2).Cells(i, 2).Value
ReDim Perserve ArrayOfName(k)
End If
Next j
Next i
End Sub
我的代码如上所示,编译时说我的ReDim Perserve ArrayOfName(k)有语法错误,去掉Perserve后说我的subscript out of range,为什麽会有这样的错误呢?