背景:作为一名 Java 程序员,为了熟悉 VBA,我正在创建 Java 的 VBA 实现ArrayList
。该类几乎完成了,但我在实现该remove(int index)
方法时遇到了麻烦。
问题:如何清空数组中的单个元素。
在 Java 中,我会使用arr[index] = null
. 在 VBA 中,我尝试了Set arr[index] = Nothing
. 结果是index
-th 元素不是空的,而是一个Nothing Object
(参见下面我的即时窗口的屏幕截图)。那么,确保函数调用结束的正确语法elementData(0)
是什么?Empty
我的完整功能代码如下。
Public Function removeIndex(index As Long) As Variant
rangeCheck (index) 'verify that index is in-bounds
modCount = modCount + 1
Dim oldValue As Variant
oldValue = elementData(index)
Dim numMoved As Long
numMoved = size - index - 1
If numMoved > 0 Then
'move the remaining elements left one
arrayCopy elementData, index + 1, elementData, index, numMoved
End If
size = size - 1
Set elementData(size) = Nothing
remove = oldValue
End Function