本日说说如何清空数组的内容
Part 1:运用处景有数组arr1,内容为Array(1, 2, 3, 4),如图1所示。增加一个元素成为arr2,如图2所示有数组arr3,内容为[{1,3,5,7,9}],如图3所示,清空成为arr4,如图4所示图1 arr1
图2 arr2
图3 arr3
图4 arr4
Part 2:代码
Sub main() Dim arr1() arr1 = Array(1, 2, 3, 4) ele = 5 temp = arr1 arr2 = arrAppend(temp, ele) arr3 = [{1,3,5,7,9}] temp = arr3 arr4 = arrClear(temp) UCount = UBound(arr4) LCount = LBound(arr4) If IsEmpty(arr4(0)) Then Debug.Print ("空") End IfEnd SubFunction arrAppend(arr, ele) UCount1 = UBound(arr) LCount1 = LBound(arr) ' 增加元素 ' 先扩大数组范围,再赋值新元素 ReDim Preserve arr(LCount1 To UCount1 + 1) arr(UCount1 + 1) = ele arrAppend = arrEnd FunctionFunction arrClear(arr) ReDim arr(0) arrClear = arrEnd Function
图5 代码截图
图6 运行过程数据
Part 3:部分代码解读temp = arr1在传入函数前对利用temp变量进行赋值,由于函数内部对变量的变动会随着函数运行结束而返回到调用该函数的过程,也便是会改变其初始值,这不是我想要的,以是利用一个临时变量在数组末端增加元素和上一节方法相同,只是封装在一个函数中ReDim arr(0)清空元素,采取Redim重新定义即可,与上一文的差异是:无Preserve。把稳采取这种办法,含有的唯一元素取值为空。如果此时向其增加元素,会在空值元素后面增加,而不是顶替空元素,如图7所示
图7 新增元素
Sub main() Dim arr1() arr1 = Array(1, 2, 3, 4) ele = 5 temp = arr1 arr2 = arrAppend(temp, ele) arr3 = [{1,3,5,7,9}] temp = arr3 arr4 = arrClear(temp) UCount = UBound(arr4) LCount = LBound(arr4) If IsEmpty(arr4(0)) Then Debug.Print ("空") End If ele = 5 temp = arr4 arr5 = arrAppend(temp, ele)End Sub
以上,为本次的先容内容,下回见。
本文首发于微信"大众年夜众号:Excel高效办公之VBA。排版和细节略作修正,发于头条