如题所述
Ubound(arr[array],num[integer]) 其实有两个参数的,第一个是数组名,第二个是数组维数!
你这种写法是个逻辑错误,函数的调用返回值一定要处理的,一般是复制给一个变量,
比如 UB=ubound(CMinRow)这样就不会错了,
具体你可以运行一下下面的代码!
Option ExplicitSub UB_Test()
Dim arr(1 To 4, 1 To 10, 1 To 20) As Variant
Dim l1 As Integer, l2 As Integer, l3 As Integer
l1 = UBound(arr, 1)
l2 = UBound(arr, 2)
l3 = UBound(arr, 3)
Debug.Print l1; l2; l3
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-03-14
Ubound(CMinRow)怎么了?你单独把它写出来作为一行,让程序如何执行?
简单试一下,把该行改为debug.print Ubound(CMinRow),看看错误提示符会不会改变。
简单试一下,把该行改为debug.print Ubound(CMinRow),看看错误提示符会不会改变。
第2个回答 2018-03-14
dim x ,y
dim arr(0 to 3)
arr=array(1,2,3,4)
x=ubound(arr)
y=arr(ubound(arr)) '等同于 y = arr(x) 等同于 y=arr(3)
'ubound(arr)是指数组的最后一个序列号 x=3 y=4
dim arr(0 to 3)
arr=array(1,2,3,4)
x=ubound(arr)
y=arr(ubound(arr)) '等同于 y = arr(x) 等同于 y=arr(3)
'ubound(arr)是指数组的最后一个序列号 x=3 y=4
第3个回答 2020-02-06
Option Explicit Sub UB_Test() Dim arr(1 To 4, 1 To 10, 1 To 20) As Variant Dim l1 As Integer, l2 As Integer, l3 As Integer l1 = UBound(arr, 1) l2 = UBound(arr, 2) l3 = UBound(arr, 3) Debug.Print l1; l2; l3End Sub
第4个回答 2014-12-25
写成 if Ubound(CMinRow)=0 then
这种试下,就像你只写一个range("a1")在单独一行,肯定报错。本回答被提问者采纳
这种试下,就像你只写一个range("a1")在单独一行,肯定报错。本回答被提问者采纳