分享

Excel VBA 9.2 数组的最大下标是什么?数组常用功能之一

 Excel和VBA 2022-05-04 发布于广东

数组的最大下标是什么?数组常用功能之一


点击上方“Excel和VBA”,选择“置顶公众号”

致力于原创分享Excel的相关知识,源码,源文件打包提供

一起学习,一起进步~~


在我们使用数组的过程中,经常会碰到这么一个问题,这个数组总共有多少个

我现在要遍历循环这个数组的话,那么我要如何遍历循环,因为我不知道数组的个数呀

又或者,当我们需要将一个数组写入到Excel中的时候,肯定要给定一个区域来写入,那么区域又涉及到这个问题

数组总共有多少个,如果是二维数组的话,那么又会延伸出来数组有多少行多少列?

这些都是我们今天要了解的知识。

我们要想获得他们的最大下标,就只需要使用一个单词,就是UBound即可

Sub tews()
Dim arr
arr = ActiveSheet.UsedRange
num = UBound(arr)
MsgBox "这个数组总共有" & num & "个"
End Sub

假设我们现在讲这样的一串文本,装到数组中,我们现在希望知道总共有多少个呢?

我们用上面的代码来测试下

19个,答案是没错的,那么也就是说,通过这个UBound方法,我们可以获得一个数组的最大下标,也就是数组的总个数

那么肯定有时候,会有小伙们说,这个最大下标,好像是针对纵向

比方说我有时候想要获得一个二维数组的维度,就是说他有几列,我需要横向遍历

那么我这个时候还是按照上面的代码,能够获得他的最大下标嘛?

很明显,这个时候这个方法不行了。

但是也仅仅是方法不对而已,但是参数还是对的,我们需要用的方法依然是UBound,不过在代码上稍作修改

Sub tews()
Dim arr
arr = ActiveSheet.UsedRange
num = UBound(arr, 2)
MsgBox "这个数组总共有" & num & "个"
End Sub

再来看看代码的效果

现在是不是就正确了呢

那么代码又是如何做到的,既然两次都是用ubound,方法上会有什么不同呢?

我们将目光集中在两段代码的第4行

num = UBound(arr)
num = UBound(arr, 2)

有没有发现什么不同,第二次我们的代码,多了一个",2"

这多了一个和少了一个,分贝代表了什么呢?

多了一个",2"代表的就是横向最大下标,简单的就是多少列

少了一个",2"代表的就是纵向做大下标,简单的就是多少行

这样大家应该会更好理解一点。

为什么会单独讲这个最大下标抽出来讲呢

其实主要是因为他的使用非常的频繁,我们在使用数组的过程中,不可避免会去循环数组,那么循环的过程中,就会用到这个方法

数组的好处就是将数据放到内存中,在大批量写入数据的时候,数组的优势是非常明显的,速度也是非常快的,所以这个时候你没有办法通过单元格遍历的方式来货的最大下标,甚至在一些动态数组中,你甚至都不知道最终的结果是多少,所以这个时候,就必须获取数组的最大下标,在获得的过程中,这个UBound的作用就出现了。

所以这也算是数组的一个基础知识,大家在学习数组的时候,一定要掌握这一点。

==========================

好了,明晚21:00,准时再见!

因为公众号没有留言功能(开的比较晚),所以建立一个线下微信群,主要为大家提供一个交流的平台,同时大家也可以提一些对公众号的意见和看法,大家一起学习,一起进步。

个人的小群,也不会很热闹,有问题抛下问题,大家互相帮助,不要发广告哦~

因为近期加群人员太杂,需要入群的小伙伴可以先加我微信,备注“加群”我会拉进群,不备注,不加的哦~~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多