着急着急!数组问题
Private Sub Command2_Click()
Dim strNum As String
Dim str() As String '单个序号与状态
Dim count() As String '序号
Dim sign() As String '状态
Dim i As Integer
i = 0
Set fil = fso.OpenTextFile(filePath, ForReading, True) '读FSO
Do While Not fil.AtEndOfStream '判断是否到达文件尾部
strNum = fil.ReadLine
If (strNum <> " ") Then
str = Split(strNum, ", ")
count(i) = str(0)????????
sign(i) = str(1)?????????
i = i + 1
End If
Loop
fil.Close
strNum = interDateDouble(count, sign)
End Sub
代码如上,?号那里 为何我i为0时候就要提示下标越界?必须定义数组长度吗?
或者我定义数组长度1000,我填写数据只有3个元素,我用身摸方法或者函数能得到3
用UBOUND只能得到1000
[解决办法]
你确信 str = Split(strNum, ", ") 其中strnum就肯定会有逗号吗?
如果没有的话不是肯定要越界啦
[解决办法]
或者我定义数组长度1000,我填写数据只有3个元素,我用身摸方法或者函数能得到3
用UBOUND只能得到1000
~~~~~
如果不确定数组大小的话可以用preserve 来动态定义数组
[解决办法]
你确信 str = Split(strNum, ", ") 其中strnum就肯定会有逗号吗?
如果没有的话不是肯定要越界啦
你可以定义动态数组,然后用redim preserve的方法不断改变数组大小
[解决办法]
If (strNum <> " ") Then
str = Split(strNum, ", ")
redim preserve count(0 to i) as string '加上这句
redim preserve sign(0 to i) as string '还有这句
count(i) = str(0)????????
sign(i) = str(1)?????????
i = i + 1
End If