扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
每行的数字个数不同,你说的这是不规则数组,解决方案如下:
成都创新互联服务项目包括吉水网站建设、吉水网站制作、吉水网页制作以及吉水网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,吉水网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到吉水省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
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)
下面的代码是含有错误跳转的,但是如果放在这一个函数里面不会影响你其他的代码。
感觉完全不用错误处理做不出来。【虽然有个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
Dim anArray(5, 3) As Integer
数组维数是从0开始计算的。
数组的 GetLength 方法返回指定维的长度。
anArray.GetLength(0) 表示取anArray第0维长度,0-5,即返回6
同理anArray.GetLength(1)取anArray第1维长度,0-3,即返回4
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流