VB中我想把B数组的数据放入A数组的最后2位,系统提示下表越界,是怎么回事啊?

[复制链接]
查看11 | 回复2 | 2009-1-16 12:20:12 | 显示全部楼层 |阅读模式
Private Sub Command1_Click()
Dim S() As String
Dim SS() As String
Dim MyTxt As String
Dim k As Integer
SS = Split(txt1CRC.Text, " ")
For k = 0 To UBound(SS)
S(UBound(S) + 1 + k) = SS(k)
Next
S = Split(txtSend.Text, " ")
For k = 0 To UBound(S)
MyTxt = MyTxt & S(k) & " "
Next
msgbox MyTxt
把SS数组的数据放入S数组的最后,系统提示下标越界,是怎么回事啊, 还有其他一些办法吗?

回复

使用道具 举报

千问 | 2009-1-16 12:20:12 | 显示全部楼层
UBound(S) 返回的已经是数组S的最大可用下标,你再变成S(UBound(S) + 1 + k),那是在最大下标下再加数,这样一定会越界啊。如果你这样弄的话,数组S就要重新定义啦。但重新定义有这样的问题,就是会清空数组中的所有项,有些头疼。如果替换原数组的话你就可以变成这样S(UBound(S) - k)。如果不替换,建议你每增加一个数就重新定义一个数组,然后把原来数组的数据以及新添加的数据拷入心定义的数组中,然后再将内存中原来的数组释放掉。我没试过,但觉得应该可行。只能帮你这些了,希望你早点解决掉问题。...
回复

使用道具 举报

千问 | 2009-1-16 12:20:12 | 显示全部楼层
需要使用到REDIM和preserveredim是对动态数组的重新定义上界,preserve是保留原来的的元素。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行