数字化工具VBA实战经验之四:数组及案例

来源:哔哩哔哩

2023-04-18 00:56:12

伙伴们,大家好。今天分享数组及案例,仅供参考。我们每天进步一点,梦想更近一步。

思语:千里之行,始于足下。

万丈高楼平地起。高楼要稳如泰山,需要有坚固的地基,需要有一砖一瓦的砌合,需要有钢筋水泥的凝结,需要有日常持续的管理。


【资料图】

本文把VBA数组和Excel公式函数的数组进行对照说明。

一、数组的定义

数组:指一组数据的集合。

二、数组定义的相关说明

数组元素:指数组里的每个成员。

一组:指两个及两个以上元素,但特殊情况下也可以是一个元素。

数据类型:VBA中有不同的数据类型,可以是数字型、文本型、日期型、时间型和对象型等。而在Excel公式函数里使用的数组的数据类型一般为数字型、文本型、日期型、时间型等。

数组划分:在Office中有VBA数组和Excel公式函数的数组,它们都是数据存储的不同形式。

VBA数组存储在内存中,而Excel公式函数数组可以存储在内存中,也可以存储在工作表的单元格里。

VBA数组可以一维、二维或多维处理数据,而Excel公式函数数组是基于单元格处理数据。

VBA数组用于处理大数据,而excel公式函数数组用于处理小量数据。

VBA数组变量名称作为每个数组元素的共同引用名称,并通过数组的下标及下标的下界、上界的位置编号引用某个具体数组元素。

VBA数组的下标:指每个数组元素在数组中的位置编号。一维数组的下标是整数,从0开始,按自然数递增。比如,定义一个长整型的一维度数组:dim myarray1(5) as long,这个myarray1就是数组变量名称,该数组的下标范围为0到5,共计6个元素。

VBA数组的下界:指数组中元素的最小下标值。数组的下界默认为0。但是可以通过Option Base语句将其设置为1,即:在标准模块第一个过程之前输入语句:Option Base 1,那么此时定义的数组元素最小下标值为1。

提取VBA数组的下界值函数:Lbound(数组变量名称,数组维数)

VBA数组的上界:指数组中元素的最大下标值。例如,上述定义的数组myarray1的元素最大下标值为5。

提取VBA数组的上界值函数:Ubound(数组变量名称,数组维数)

三、数组的形式

数组的形式可以分为横向数组、纵向数组和多维数组。

1、横向数组

比如,在Excel公式函数参数中输入横向数组:{"销售费用", "管理费用", "研发费用"}。数组用一对大括号封存,在大括号里的各个数组元素之间使用逗号作为分隔符,如果元素是文本字符串需要使用英文双引号包裹起来。在Excel中,我们可以理解为行方向的数组。在VBA中使用Array函数:Array("销售费用", "管理费用", "研发费用")赋值。

2、纵向数组

比如,Excel公式函数参数中输入纵向数组:{"销售费用" ; "管理费用" ; "研发费用"}。数组用一对大括号封存,在大括号里的各个数组元素之间使用分号作为分隔符,如果元素是文本字符串需要使用英文双引号包裹起来。Excel中我们可以理解为列方向的数组。

VBA中使用Array函数:Array("销售费用", "管理费用", "研发费用")赋值,使用Application.Transpose函数转置为纵向数组。Application.Transpose(数组变量名称)。

3、多维数组

数组可是二维及以上的多维数组。这里举例二维数组,比如,{100,200,300 ; 400,500,600}, 它是一个两行三列的二维数组,数组用一对大括号封存,在大括号里第一行的横向数组各个元素之间使用逗号作为分隔符,第二行使用分号作为换行符,紧跟一个横向数组。

VBA中可直接批量赋值给数组变量名称。比如,myarray1 = range("A1:C2")

四、数组的注意事项

1、数组的输入方法

Excel公式函数中使用数组作为参数进行计算,通常需要在各参数输入完毕后,同时按下Ctrl+Shift+Enter三键结束输入,并返回计算结果。一般是在Excel 2016及之前版本里,需这样操作。而在Excel 2019版本开始,直接按下Enter回车键就可以完成操作。而在VBA中,按上述举例直接对数组变量名称赋值。

2、数组公式与常规公式的区别

Excel中常规公式是我们日常在一个单元格里输入的。而数组公式可以在一个单元格里输入并返回计算结果,也可以先选中与数组维数大小相同的单元格区域(即:存储返回结果),然后输入数组公式完成计算。

Excel中常规公式在单元格未做保护的条件下,可以按Delete键删除或直接更改。而数组公式只能在输入数组公式时的首个单元格删除,除首个单元格外删除或更改,会弹出提示:无法更改部分数组。这也说明数组公式可以在一定程度上保护数据。

五、VBA数组案例

把A1:C2区域赋给数组myarray1,并把该数组的下界、上界写入B17:B20相应区域。编译代码并按F8键逐语句执行后如下图:

六、Excel公式函数的数组案例

在下述工作表中求出远昌财税的出现次数。在公式编辑栏输入:=SUM((B7:B14="远昌财税")+0)

关键词:

疾控专家:提高全人群流感疫苗接种率尤为重要-环球新动态

来自中国疾控中心、各省市疾控中心以及中国香港、墨西哥、智利的中外专家与会。多位与会专家提醒,亟需通过[详细]
2023-05-25

天天热消息:球迷狂喜!天津队续约张庆鹏5年,同曦队将如何应对?

球迷狂喜!天津队续约张庆鹏5年,同曦队将如何应对?,杨鸣,张庆鹏,天津队,同曦队,张德贵,浙江队,刘维伟,男[详细]
2023-05-25

农村宅基地所有权应该归谁所有,可以转让吗-环球今热点

农村宅基地的所有权应该归所在村的村集体所有。我国法律就明确规定了,宅基地和自留地、自留山,属于集体所[详细]
2023-05-25

一天近2000套房降价 有人降价20万“只求一卖” 北京的二手房怎么还越卖越多? 焦点资讯

【一天近2000套房降价有人降价20万“只求一卖”北京的二手房怎么还越卖越多?】根据贝壳官网,2022年11月北[详细]
2023-05-25

教育部组织开展职业院校优秀教师代表2023年全国巡回宣讲活动 世界新资讯

为深入贯彻落实党的二十大精神,推动职业教育教师队伍建设,结合2023年全国职业教育活动周,教育部在职业教[详细]
2023-05-25

暴力激战之热血英雄(关于暴力激战之热血英雄介绍)

来为大家解答以上的问题。暴力激战之热血英雄,力激战之热血英雄介绍这个很多人还不知道,现在让我们一起来[详细]
2023-05-25

红瑞乐邦焦点访谈_红瑞乐邦 观速讯

1、红瑞乐邦高电位是不可以治病的。2、这个很重要的。本文就为大家分享到这里,希望小伙伴们会喜欢。[详细]
2023-05-25

GooglePixel7a智能手机耐用性测试

最近推出了新的GooglePixel7a智能手机,现在我们可以在JerryRigEverything的新视频中了解这款手机的耐用性[详细]
2023-05-25

征信花了没有逾期哪里可以借钱急用?试试这10个

征信花了没有逾期可以借钱急用的平台有:度小满、安信花、360借条、安逸花、小赢卡贷、宜享花、众安贷、天[详细]
2023-05-25

降尿酸最快的三种水果 降尿酸的水果有哪些

今天来聊聊关于降尿酸最快的三种水果,降尿酸的水果有哪些的文章,现在就为大家来简单介绍下降尿酸最快的三[详细]
2023-05-25
版权所有: 南极制冷网 All Rights Reserved
粤ICP备2022077823号-13
联系邮箱: 317 493 128@qq.com