我有以下代码,它基于它应该工作的逻辑。
我希望它是 (4,3,2,1),但在循环结束时我得到 t=(4,3,3,4)
Sub try()
Dim t As Variant
t = Array(1, 2, 3, 4)
a = UBound(t)
For k = 0 To a
t(k) = t(a - k)
Next k
End Sub
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在进行切换之前,您必须使用临时变量来存储内容,否则它将被覆盖。
这就是你正在尝试的吗?
Sub try()
Dim t As Variant, tmp As Variant
Dim a As Long, b As Long, i As Long
t = Array(1, 2, 3, 4)
a = UBound(t): b = LBound(t)
For i = 0 To ((a - b) \ 2)
tmp = t(i)
t(i) = t(a)
t(a) = tmp
a = a - 1
Next i
For i = 0 To UBound(t)
Debug.Print t(i)
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)