在EXCEL VBA中如何动态定义数组

shanghaojia 2003-03-17 11:56:40
小妹刚刚接触EXCEL VBA,想动态定义数组,如 Dim ArrayofName() As Currency
在程序中用到ArrayofName(i)=cells(2,3).value 总提示subscript out of range
如果Dim ArrayofName(100) As Currency就没有问题,可是这样会造成浪费,我试着用
ReDim ArrayofName(i)也不好用
各位大虾帮我解决一下好吗?不胜感激!
...全文
2191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanghaojia 2003-03-17
  • 打赏
  • 举报
回复
谢谢你,yangzhaoyu(老妖),都怪我太粗心了,thanks a lot!马上给分
yangzhaoyu 2003-03-17
  • 打赏
  • 举报
回复
Preserve != Perserve
检查代码
ReDim Perserve ArrayOfName(k)
shanghaojia 2003-03-17
  • 打赏
  • 举报
回复
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,为什麽会有这样的错误呢?

yangzhaoyu 2003-03-17
  • 打赏
  • 举报
回复
可行

Dim ArrayofName() As Currency
ReDim ArrayofName(100)
ArrayofName(100) = Sheet1.Cells(1, 1).Value
Debug.Print ArrayofName(100)

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧