扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
每行的数字个数不同,你说的这是不规则数组,解决方案如下:
创新互联公司是专业的天峨网站建设公司,天峨接单;提供网站制作、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行天峨网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
Dim b As String = ""
Dim a As Integer()() = New Integer(9)() {}
a(0) = New Integer() {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
a(1) = New Integer() {0, 3, 4, 5}
a(2) = New Integer() {0, 4, 5, 6, 7}
a(3) = New Integer() {0, 6, 5, 8, 9, 1}
a(4) = New Integer() {0, 2, 5, 1, 7}
a(5) = New Integer() {0, 4, 2, 6, 7, 3}
a(6) = New Integer() {0, 4, 5, 3, 2}
a(7) = New Integer() {0, 4, 1, 6, 2, 8, 5, 3}
a(8) = New Integer() {0, 4, 9, 6, 3, 5, 7}
a(9) = New Integer() {0, 1, 5, 9, 7, 6, 2, 4, 3, 8}
For i As Integer = 0 To a.GetUpperBound(0)
b = "第" i + 1 "行有" a(i).GetUpperBound(0) + 1 "个数" vbCrLf
Next
MessageBox.Show(b)
动态数组一般开始不能直接写dim a as string。除非Variant。一般先定义类型 但是数组名后得加上括号。例如
DIM a() AS STRING
后面根据需要使用的时候,可以自己定义大小。但是必须注意一点。重新定义的时候,
Redim a(11) 的时候,就会将原来的数组元素清空了,没有保存。
Redim Preserve a(11) 就会将重新定义数组大小的同时,还将原来的数据保存了。
array(2,2)是多维数组的访问方式,其数组的定义和初始化方法为:
Dim array As Integer(,) = {{1, 2, 3}, {4, 5, 6}}
每一行的元素数量是固定且相等的。
array(2)(2)是交错数组(即数组的数组)的访问方式。也就是,你有一个数组,这个数组的每个元素也是数组。其数组的定义和初始化方法为:
Dim array As Integer()() = {New Integer() {1, 2, 3}, New Integer() {4, 5, 6, 7, 8}}
由于每个元素是独立的数组,所以交错数组每一行的元素数量不固定,且可以不等。
用一个带括号的变量名来定义一维数组和多维数组如dim a(5) as integer '定义了1个1维、6个元素数组dim a(5,5) as integer '定义了1个2维、36个元素的数组
下面的代码是含有错误跳转的,但是如果放在这一个函数里面不会影响你其他的代码。
感觉完全不用错误处理做不出来。【虽然有个IsError,但是无法像 IsError(UBound(mArray, i))这样使用它,不然我们就可以不用跳转了。】
【Excel中的VBA与VB语法上没有什么差别】
设计思想:
在VB中数姐最大维数是60,所以我们通过错误捕捉来处理这个问题,在这里我们用到UBound函数
Public Function ArrayRange(mArray As Variant) As Integer
Dim i As Integer
Dim Ret As Integer
Dim ErrF As Boolean
ErrF = False
On Error GoTo ErrHandle
'判断代入的参数是否为数组
If Not IsArray(mArray) Then
ArrayRange = -1
Exit Function
End If
'VB中数组最大为60
For i = 1 To 60
'用UBound函数判断某一维的上界,如果大数组的实际维数时产生超出范围错误,
' 此时我们通过Resume Next 来捕捉错这个错误
Ret = UBound(mArray, i)
If ErrF Then Exit For
Next i
'最后返回
ArrayRange = Ret
Exit Function
ErrHandle:
Ret = i - 1
ErrF = True
Resume Next
End Function
就是指引用一个数组元素时,有几个下标来描述。
例如a(1)是数组的基本元素,则数组a就是一维数组;
b(1,2)是数组的基本元素,则数组b就是二维数组;
c(2,1,2)是数组的基本元素,则数组c就是三维数组;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流