菜鸟问题,请赐教!

zhouwenhong0427 2004-08-11 04:58:08
这段程序运行后出错,提示下标越界!Private Sub Command1_Click()
Dim a() As String


Dim n As Long
ReDim a(n)
Dim k As Integer, m As Integer
Dim l1 As Long, l As Long
k = 1: m = 1
a(0) = CStr(k)
a(1) = CStr(m)
a(2) = a(0) + "," + a(1)

l1 = Len(a(2))
Text1.Text = CStr(l1)
l = CLng(a(2))
Text2.Text = CStr(l)
End Sub

...全文
91 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tommychim 2004-08-11
  • 打赏
  • 举报
回复
使用ReDim Preserve a(n) As String来保留以前的数组信息
SoHo_Andy 2004-08-11
  • 打赏
  • 举报
回复
动态数组示例
dim a() as string
dim i as integer
i=0
for i=0 to 5
redim preserve a(i)
a(i)=i & ""
next

zhouwenhong0427 2004-08-11
  • 打赏
  • 举报
回复
谢谢楼上各位!!
我要实现是动态数组,因为我要定义一个数组不是只有2个元素,可能是很多很多的元素,因此,我定义了dim n as long ,redim a(n) ,目的是想让a(n)能容纳long数据类型范围内的大小的数组元素,如果定义了n=2,那我的目标就没达到,我是想定义动态数组,是不是如上那样使用错了!!!
wxrwan 2004-08-11
  • 打赏
  • 举报
回复
全部同意
starsoulxp 2004-08-11
  • 打赏
  • 举报
回复
同意楼上
danielinbiti 2004-08-11
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a() As String


Dim n As Long
n=2
ReDim a(n)
Dim k As Integer, m As Integer
Dim l1 As Long, l As Long
k = 1: m = 1
a(0) = CStr(k)
a(1) = CStr(m)
a(2) = a(0) + "," + a(1)

l1 = Len(a(2))
Text1.Text = CStr(l1)
l = CLng(a(2))
Text2.Text = CStr(l)
End Sub

rainstormmaster 2004-08-11
  • 打赏
  • 举报
回复
Dim a() As String
Dim n As Long
ReDim a(n)'这时n=0,所以出错,在前面加一句:n=2就行了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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