Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9765|回复: 19

[已解决]如何计算能得到数组的维数?

[复制链接]
发表于 2010-3-30 09:52 | 显示全部楼层 |阅读模式
我有一个数组arr,这个数组是动态的,我想动态的得到这个数组的维数,应该如何去做?
最佳答案
2010-3-30 10:16
Function DofArray(arr) As Integer
    On Error Resume Next
    '判断是否数组
    If Not IsArray(arr) Then
        DofArray = -1
        Exit Function
    End If
    '利用出错来判断
    For i = 1 To 61
        aa = UBound(arr, i)
        If Err.Number <> 0 Then
            DofArray = i - 1
            Exit Function
        End If
    Next
End Function
[此贴子已经被作者于2010-3-30 10:21:28编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2010-3-30 09:58 | 显示全部楼层

我自己只会用错误捕捉的方法来实现,不知道有什么函数没有?
回复

使用道具 举报

发表于 2010-3-30 10:01 | 显示全部楼层

lbound(arr) ubound(arr)

lbound(arr,2) ubound(arr,2)

回复

使用道具 举报

 楼主| 发表于 2010-3-30 10:04 | 显示全部楼层

3L的,可能我没说清楚.

我是这个意思.

比如一个数组是二维数组,我要得到2

如果是一维数组,我要得到1

我不是想要得到下标,而是维数..

回复

使用道具 举报

发表于 2010-3-30 10:07 | 显示全部楼层

坐等学习其它方法
回复

使用道具 举报

发表于 2010-3-30 10:16 | 显示全部楼层    本楼为最佳答案   

Function DofArray(arr) As Integer
    On Error Resume Next
    '判断是否数组
    If Not IsArray(arr) Then
        DofArray = -1
        Exit Function
    End If
    '利用出错来判断
    For i = 1 To 61
        aa = UBound(arr, i)
        If Err.Number <> 0 Then
            DofArray = i - 1
            Exit Function
        End If
    Next
End Function
[此贴子已经被作者于2010-3-30 10:21:28编辑过]
回复

使用道具 举报

 楼主| 发表于 2010-3-30 10:25 | 显示全部楼层

除了错误判断没有其他方法了么?

回复

使用道具 举报

发表于 2010-3-30 10:26 | 显示全部楼层

把这个未知数组作为参数,放到自定义函数中。

用其他办法,求出参数个数,从而知道数组维数,可以吗?

 

 

[em09]
回复

使用道具 举报

发表于 2010-3-30 10:27 | 显示全部楼层

我这么猜的,我不会啊,我是来问的[em04]
回复

使用道具 举报

发表于 2010-3-30 10:37 | 显示全部楼层

肯定的回答,没有这样的VBA函数

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-17 00:59 , Processed in 0.397283 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表