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
应用数组编码可以极大提高程序的运行效率,当然了,如果是初级编程人员,对于数组的学习还是有不小困难。
首先应用对数组概念进行一个全面学习。
然后,再着手编辑一些小型程序代码,来验证对数组的理解。
无论哪种编程语言,都将应用到数组,通过对数组的学习,我们会引申出另一个学习内容。
字典。
没错字典是整个编程中,相对独特的一种类型。
由于它的特殊性,在应用过程中也是相当出色。
不得不学。
欢迎关注、收藏、转发