Excel VBA:带有变量和时间戳的二维数组

3
我希望我的下面的子过程在每次执行时都能将参数和时间戳推送到一个二维数组中。
Public Dim myArray() As Variant

Public Sub mySub(argument)
n = n + 1
   //other code here
ReDim Preserve myArray(1 To n, 1 To 2)
myArray(n, 1) = argument
myArray(n, 2) = DateTime.Now()

End Sub

基本上我想要得到一个有2列n行的数组,第1列是过程中使用的参数,第2列是时间戳。
这个过程是从函数中调用的,但是函数返回了#VALUE!,而且数组是空的。这段代码哪里出错了?
1个回答

2

您遇到了VBA数组的一个怪异问题。您只能在第二维使用ReDim Preserve来增加2-D数组。也就是说,

n = n + 1
ReDim Preserve myArray(1 To 2, 1 to n)

可以工作,但是

n = n + 1
ReDim Preserve myArray(1 To n, 1 To 2)

会导致错误。

如果您想以这种方式使用数组,则必须反转您的尺寸。


1
可以了!我不知道 ReDim Preserve 只能用于第二个维度,谢谢! - user882670

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接