Private Sub Command1_Click()Dim filename,instring,a(36),b() As String
Dim i,j As Integer
Dim arry(0 To 36, 0 To 72), arry1(0 To 36, 0 To 72) As Singlefilename = "\\Micaps-server\micapsdata\ecmwf\pressure\999\" + Format(Date, "yymm") + LTrim(Str(Format(Date, "dd") - 1)) + "20" + ".000"Open filename For Input As #1
Line Input #1, instring
Line Input #1, instring
Line Input #1, instring
instring = "" /读前面3行,不要的 '将37个数据块读入字符串数组a(i)For i = 0 To 36
For j = 0 To 8
Line Input #1, instring
a(i) = a(i) + instring
Next j
Next i'切割数组,把数值附到二维数组arry(),73列,第一列为空,每行前面有3个空格,所以分割的时候有73个元素。For i = 0 To 36
b() = Split(a(i), Space(3))
For j = 0 To UBound(b)
arry(i, j) = b(j)
Next j
Next i
Close #1
End Sub
前面编译的时候没有出错,debug.arry(0,1)得到了正确数据,因为还要同样处理其他文件,我把前面的重新粘贴,改了下打开的文件名,数组用arry( ,)接收数据,结果提示“b() = Split(a(i), Space(3))” 类型不匹配,b()的下标又原来的72变为144,难道重复使用split()下标要累加??
改c(),也不行。后面把重新粘贴的这段去掉,还是提示原来的“b() = Split(a(i), Space(3))” 类型不匹配。
split()返回的应该是一个1维数组,用字符串数组b(),接收为什么会出错,搞不懂,请哪位大侠指教!
==============================================
源数据
diamond 4 9年4月16日20点ECMWF_海平面气压17日20点预报
9 4 16 20 24 999 2.500 2.500 0.000 177.500 0.000 90.000 72 37
4.0 988.0 1036.0 0 0 1012.4 1011.8 1012.1 1010.4 1010.1 1009.9 1008.9 1008.2 1008.1 1008.5
1008.4 1008.9 1009.0 1011.2 1011.1 1013.1 1006.8 1008.2 1008.2 1007.6
1007.9 1007.3 1007.3 1007.3 1007.2 1007.2 1007.0 1007.3 1007.2 1007.0
1006.7 1006.4 1006.5 1006.7 1006.8 1006.8 1006.8 1007.0 1007.2 1007.6
1009.3 1007.0 1007.8 1008.1 1008.3 1010.1 1010.8 1009.6 1010.0 1010.3
1009.8 1009.9 1010.2 1009.5 1009.4 1009.9 1010.2 1010.0 1010.2 1009.7
1009.5 1010.0 1009.6 1009.3 1009.4 1008.4 1009.0 1009.0 1009.1 1009.2
1009.1 1009.0 1012.1 1012.2 1011.2 1010.3 1010.1 1010.3 1008.4 1008.3 1008.5 1008.7
1008.3 1007.7 1008.7 1009.2 1009.1 1006.1 1009.1 1008.5 1007.2 1007.3
1007.5 1007.4 1007.5 1007.4 1007.8 1007.4 1007.1 1007.1 1006.9 1006.6
1006.4 1006.2 1006.1 1006.4 1006.4 1006.5 1006.6 1006.6 1006.9 1007.4
1006.9 1007.2 1007.7 1008.0 1008.6 1009.4 1014.7 1010.1 1009.6 1009.9
1010.3 1009.9 1010.2 1009.6 1009.6 1009.3 1010.1 1010.2 1009.9 1010.0
1010.0 1009.8 1009.3 1008.9 1008.9 1008.5 1008.8 1008.9 1008.9 1008.8
1008.8 1008.7
Dim i,j As Integer
Dim arry(0 To 36, 0 To 72), arry1(0 To 36, 0 To 72) As Singlefilename = "\\Micaps-server\micapsdata\ecmwf\pressure\999\" + Format(Date, "yymm") + LTrim(Str(Format(Date, "dd") - 1)) + "20" + ".000"Open filename For Input As #1
Line Input #1, instring
Line Input #1, instring
Line Input #1, instring
instring = "" /读前面3行,不要的 '将37个数据块读入字符串数组a(i)For i = 0 To 36
For j = 0 To 8
Line Input #1, instring
a(i) = a(i) + instring
Next j
Next i'切割数组,把数值附到二维数组arry(),73列,第一列为空,每行前面有3个空格,所以分割的时候有73个元素。For i = 0 To 36
b() = Split(a(i), Space(3))
For j = 0 To UBound(b)
arry(i, j) = b(j)
Next j
Next i
Close #1
End Sub
前面编译的时候没有出错,debug.arry(0,1)得到了正确数据,因为还要同样处理其他文件,我把前面的重新粘贴,改了下打开的文件名,数组用arry( ,)接收数据,结果提示“b() = Split(a(i), Space(3))” 类型不匹配,b()的下标又原来的72变为144,难道重复使用split()下标要累加??
改c(),也不行。后面把重新粘贴的这段去掉,还是提示原来的“b() = Split(a(i), Space(3))” 类型不匹配。
split()返回的应该是一个1维数组,用字符串数组b(),接收为什么会出错,搞不懂,请哪位大侠指教!
==============================================
源数据
diamond 4 9年4月16日20点ECMWF_海平面气压17日20点预报
9 4 16 20 24 999 2.500 2.500 0.000 177.500 0.000 90.000 72 37
4.0 988.0 1036.0 0 0 1012.4 1011.8 1012.1 1010.4 1010.1 1009.9 1008.9 1008.2 1008.1 1008.5
1008.4 1008.9 1009.0 1011.2 1011.1 1013.1 1006.8 1008.2 1008.2 1007.6
1007.9 1007.3 1007.3 1007.3 1007.2 1007.2 1007.0 1007.3 1007.2 1007.0
1006.7 1006.4 1006.5 1006.7 1006.8 1006.8 1006.8 1007.0 1007.2 1007.6
1009.3 1007.0 1007.8 1008.1 1008.3 1010.1 1010.8 1009.6 1010.0 1010.3
1009.8 1009.9 1010.2 1009.5 1009.4 1009.9 1010.2 1010.0 1010.2 1009.7
1009.5 1010.0 1009.6 1009.3 1009.4 1008.4 1009.0 1009.0 1009.1 1009.2
1009.1 1009.0 1012.1 1012.2 1011.2 1010.3 1010.1 1010.3 1008.4 1008.3 1008.5 1008.7
1008.3 1007.7 1008.7 1009.2 1009.1 1006.1 1009.1 1008.5 1007.2 1007.3
1007.5 1007.4 1007.5 1007.4 1007.8 1007.4 1007.1 1007.1 1006.9 1006.6
1006.4 1006.2 1006.1 1006.4 1006.4 1006.5 1006.6 1006.6 1006.9 1007.4
1006.9 1007.2 1007.7 1008.0 1008.6 1009.4 1014.7 1010.1 1009.6 1009.9
1010.3 1009.9 1010.2 1009.6 1009.6 1009.3 1010.1 1010.2 1009.9 1010.0
1010.0 1009.8 1009.3 1008.9 1008.9 1008.5 1008.8 1008.9 1008.9 1008.8
1008.8 1008.7
一次全部读入一个变量里 再用Split 来处理
Do While Not EOF(1)
Line Input #1, tmp
instring = instring + tmp
Loop
'Debug.Print instring
b() = Split(instring, Space(3))还是提示:b() = Split(a(i), Space(3)) 类型不匹,为什么啊????