No.1

在vba编程中,数组应用是一个十分有用的方法。

如何把数据表作为数组进行处理,是编程过程中的一个重要技能。

学会之后,将大大提高编程技术,也将使数据处理的过程变得更加流畅。

No.2

上图为例,把表格内容作为数组值进行保存,然后通过流程编码对成绩进行一个比较判断,最终得出一个成绩等级的判定。

也就是通过成绩的多少来确定一个等级区间。

同样的判断在不同的表格里应用也比较多。

如一个销售表里面判断某一个人或一类商品的销量,如果在某一个区间就做出爆款判定,如果销量小于某一个值,说明此商品应该下架。

同类型数据表格,我们用数组来做处理,效果会很好。

No.3

要对表格进行一个数组保存,我们用到上图的一个属性CurrentArray,此属性是Range对象里的一个属性。

功能是将表格内容返回到一个数组里。

如:

Dim NewArrr

NewArr=Thisworkbook.Activesheet.Range("A1:A10").CurrenRegion

通过以上代码,创建了一个数组NewArr,包含了数据表中A1:A10的数据内容。

当然,vba并不是这么解释的,但可以这么理解。

No.4

实际上表格转换为数组,只要将Range对象对数组直接进行赋值即可,也就是把表格单元格直接赋值给数组。

如下例子:

Dim rs As Range Set rs = s.Range("B2:B5") Dim ar ar = rs MsgBox UBound(ar)

执行之后,ar就是一个包含B2:B5单元格值的数组。

ar(1,1)

ar(2,1)

ar(3,1)

ar(4,1)

ar(5,1)

注意:

这个数组不是一维数组,它是一个二维数组。

如果要访问数组中的第一个值,要用ar(1,1)来进行访问,最后一个值用ar(4,1)访问。

No.5

可以看到上图为代码示例,是这个例子的全部代码,实际应用要对应着表格进行。

下面看下代码的具体内容:

Private Sub GetDengji() Dim s As Worksheet Set s = ThisWorkbook.ActiveSheet Dim r As Range Set r = s.Range("B2") Dim ArrMa As Variant ArrMa = r.CurrentRegion '数组赋值 Dim ui As Long, li As Long, i As Long, j As Long, x As Long li = r.CurrentRegion.Rows.Count '行数 ui = r.CurrentRegion.Columns.Count '列数 x = r.CurrentRegion.Count '数组总数 Dim DJ As Variant DJ = Array("优秀", "优良", "不及格") For i = 1 To li '循环行 For j = 1 To ui '循环列 If j = 5 And VBA.Len(ArrMa(i, j)) <> 0 Then '条件判断第5列 If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 80 Then s.Cells(i, j + 1).Value = DJ(0) If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 60 And ArrMa(i, j) <= 79 Then s.Cells(i, j + 1).Value = DJ(1) If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) <= 59 Then s.Cells(i, j + 1).Value = DJ(2) End If Next j Next i End Sub

应用数组编码可以极大提高程序的运行效率,当然了,如果是初级编程人员,对于数组的学习还是有不小困难。

首先应用对数组概念进行一个全面学习。

然后,再着手编辑一些小型程序代码,来验证对数组的理解。

无论哪种编程语言,都将应用到数组,通过对数组的学习,我们会引申出另一个学习内容。

字典。

没错字典是整个编程中,相对独特的一种类型。

由于它的特殊性,在应用过程中也是相当出色。

不得不学。

欢迎关注、收藏、转发