我有一个数字数组,一旦我“使用”了一个我想使用我为该值存储的特定索引删除的数字。
我知道没有直接的方法,但有没有办法解决这个问题?
示例:
ShiftArray(1,25,12)
Pos = 1
Shiftarray(pos).delete
数组应该是 = ShiftArray(1,12)
(我知道这样的方法不存在,只是为了清楚起见)
我尝试了以下操作,但出现错误:
ShiftHeadsArray(pos - 1) = " "
StringUse = Application.WorksheetFunction.Trim(Join(ShiftHeadsArray, " "))
ShiftHeadsArray = Split(StringUse, " ")
其中 pos 是我要删除的数字在数组中的位置。
答案 0 :(得分:1)
试试这个代码
Sub Test()
Dim arr
arr = Array(1, 25, 12)
DeleteItem arr, 1
Debug.Print Join(arr, ", ")
End Sub
Sub DeleteItem(ByRef arr, v)
Dim a(), i As Long, n As Long, x As Long, y As Long
x = LBound(arr): y = UBound(arr)
ReDim a(x To y)
For i = x To y
If i <> v Then a(i - n) = arr(i) Else n = n + 1
Next i
If (y - n) >= x Then ReDim Preserve a(x To y - n)
arr = a
End Sub