VB 字符串类型的二维数组的定义方法

例子如下:
我要定义2个3*3的二维数组,
Dim partin,partout As Variant
partin = Array([F11,F12,F13], [F21,F22,F23], [F31,F32,F33])
partout = Array([F11F,F12F,F13F], [F21F,F22F,F23F], [F31F,F32F,F33F])
其中2个数组的下标都是变量的,类型是String
我写的代码是
for i = 0 to 2
for j = 0 to 2
if partin(i,j) = partout(i,j) then
partin(i,j) = partout(i,j)
else
partin(i,j) = partin(i,j) & "and" & partout(i,j)
end if
next j
next i
运行程序的时候提示下标越界,不知道是不是定义错了,第一次用二维数组不知道怎么用,百度找了很多例子但都没有我想要的,请问我这个数组正确的应该怎样定义,如果写的代码也有错请顺便也帮我修正一下,谢谢,非常感谢~~

用ARRAY定义数组也可以,只是你的定义方法及引用方法都不对。

用ARRAY无法定义二维数组,只能定义多重数组,因此不能向二维数组那样引用。

 

Dim PartIn, PartOut
PartIn = Array(Array(F11, F12, F13), Array(F21, F22, F23), Array(F31, F32, F33))
PartOut = Array(Array(F11F, F12F, F13F), Array(F21F, F22F, F23F), Array(F31F, F32F, F33F))
For i = 0 To 2
For j = 0 To 2
If PartIn(i)(j) = PartOut(i)(j) Then
PartIn(i)(j) = PartOut(i)(j)
Else
PartIn(i)(j) = PartIn(i)(j) & "and" & PartOut(i)(j)
End If
Next j
Next i

 

另外,为什么F11、F12、。。。不都定义成数组呢?这样用二维数组也挺方便。

 

Dim F(2, 2), FF(2, 2)
Dim PartIn(2, 2), PartOut(2, 2)
For i = 0 To 2
For j = 0 To 2
PartIn(i, j) = F(i, j)
PartOut(i, j) = FF(i, j)
Next j
Next i
For i = 0 To 2
For j = 0 To 2
If PartIn(i, j) = PartOut(i, j) Then
PartIn(i, j) = PartOut(i, j)
Else
PartIn(i, j) = PartIn(i, j) & "and" & PartOut(i, j)
End If
Next j
Next i

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-02
dim partin(2,2) as string
Array好像只能定义一维数组
第2个回答  2013-04-02
Dim partin(2, 2) As String
partin(0, 0) = "F11"
partin(0, 1) = "F12"
partin(0, 2) = "F13"
partin(1, 0) = "F21"
partin(1, 1) = "F22"
partin(1, 2) = "F23"
partin(2, 0) = "F31"
partin(2, 1) = "F32"
partin(2, 2) = "F33"追问

你好,如果要按照你这样来定义的话,那如果我要一个10*10的数组,岂不是要全部列出来列100个?应该不用这样吧,另外我稍微改了一下
Dim partin(2, 2) As String
partin(2, 2) = [(F11,F12,F13), (F21,F22,F23), (F31,F32,F33)]
但是我输出partin(0,0)或者partin(0,1)的时候没有值,都是空的,本来应该是有值的,总归还是回到定义的方法去,不知道这样定义对不对

追答

请问,你是VB的什么版本?

本回答被网友采纳