arrays - Excel VBA : two dimensional array with variable and time stamp

标签 arrays vba excel

我希望下面的 Sub 过程在每次执行时将参数和时间戳推送到二维数组。

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!并且数组是空的。这段代码有什么问题?

最佳答案

您遇到了 VBA 数组的怪癖。您只能在二维中使用 ReDim Preserve 扩充二维数组。也就是说,

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

会起作用,但是

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

会导致错误。

如果您想以这种方式使用数组,则只需翻转尺寸即可。

关于arrays - Excel VBA : two dimensional array with variable and time stamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20169949/

相关文章:

vba - 从网络下载文件 (PDF)

javascript - Jquery FullCalendar 导出到 Excel

javascript - 过滤对象数组/将数组转换为另一个对象

c - 为什么访问数组中的元素需要常数时间?

excel - 控制变量已在使用 - 简单的 VBA 脚本

excel - 通过引用一系列单元格提示用户输入源文件夹和目标文件夹 - 涉及数据传输

vba - 我的搜索宏没有返回搜索值

excel - 匹配 2 列和第三列的结果

c++ - 相邻打印 2 个数组

java - 在分割期间将字符串转换为字符串数组时,会产生不需要的输出