VBA excel使用UBound判断数组是否为空,但是UBound这个函数以前没用过,为什么提示缺少标示符啊?

如题所述

Ubound(arr[array],num[integer]) 其实有两个参数的,第一个是数组名,第二个是数组维数!

你这种写法是个逻辑错误,函数的调用返回值一定要处理的,一般是复制给一个变量,

比如  UB=ubound(CMinRow)这样就不会错了,


具体你可以运行一下下面的代码!

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; l3
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-14
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
第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")在单独一行,肯定报错。本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网