本日说说如何清空数组的内容

Part 1:运用处景有数组arr1,内容为Array(1, 2, 3, 4),如图1所示。
增加一个元素成为arr2,如图2所示有数组arr3,内容为[{1,3,5,7,9}],如图3所示,清空成为arr4,如图4所示

图1 arr1

php数组清零ExcelVBA专项数组05数组清空 NoSQL

图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
排版和细节略作修正,发于头条