一、 什么是数组:所谓数组就是用来存储大量的数据的存储空间,数组在存储数据时是有序存储。数组中的每一个值被称为数组元素,每一个数组元素都有一个编号(即索引,也可以称为下标),从0开始到数组长度-1为止

二、一维数组

理论的东西,我就不单独拎出来写了,我拿一个基操案例,来把一维数组讲解一下

sub 数组
// 什么是数组:所谓数组就是内存中开辟出来的用来存储大量数据的存储空间
VBA中数组的分类:一维数组、二维数组
一维数组的定义
格式1:dim 数组名(长度) as 数据类型
dim score(3) as integer
一维数组的赋值,需要用到如下格式:数组名(编号/下标/索引) = 值
① score(0)=60
score(1)=70
score(2)=80
② for i=0 to 9 //用excel中sheet里的值给数组赋值
score(i)=sheets(3).cells((i+1),1)
next
一维数组值的获取
dim sum%
sum=score(0)+score(2)
msgbox(sum)
一维数组重新赋值:数组名(编号/下标/索引) = 值
score(1)=100
msgbox(score(1))
数组的遍历
dim sum2%,i%
① for i=0 to 2
msgbox(score(i))
next
② for i=LBound(score) to UBound(score)-1 //LBound(数组名)是用来取数组的最小下标
msgbox(score(i)) //Ubound(数组名)是用来取数组的长度
next
③ for each ele in score
msgbox(ele)
next
end sub

三、二维数组

和一维一样,理论知识省略,在基操案例中直接讲解

定义二维数组的格式:dim 数组名(行数,列数) as 数据类型
Dim arr(4, 3) As Integer

二维数组的赋值(从单元格中获取值)
dim i%,j%
for i=0 to 3
for j=0 to 2
arr(i,j)=sheets(3).cells((i+1),(j+1))
next
next

  • 案例(求对角线上的和)

sub 二维
dim i,j,sum
sum=0
for i=0 to 2
for j=0 to 2
if i=j or i+j=2 then
sum=sum+arr(i,j)
end if
next
next

msgbox(sum)
end sub

四、定义函数

什么是函数:所谓函数就是指具有特定功能的模块,VBA中如何定义函数:有参函数、无参函数、有返回值函数、无返回值函数、内置函数、无参无返回值函数的定义

//判断输入的数是不是完数
function isWS(num)
dim i,sum
sum=0
for i=1 to num-1
if num mod i =0 then
sum=sum+i
end if
next
if sum=num then
isWS=true
else
isWS=false
end if
end function

  • 使用自己创建的这个函数--判断一个数是不是完数

推荐阅读:
相关文章