我在电子表格中每月有60年的现金流,并在for循环中遍历1,000多个案例。我想将这些现金流存储在一个数组中。一次抓取整个范围并将其存储在数组中要比逐个单元快得多。目前,我有以下代码在then循环中获取数据:
With ActiveSheet
CF_Arr(i, 1) = .Range(.Cells(StartRow, StartCol), .Cells(EndRow, EndCol))
End With
这个问题是它增加了数组的尺寸。我宁愿将现金流附加在数组的末尾。例如,如果CF_Arr = [x x x],并且我添加了另一个数据块,我希望它看起来像CF_Arr = [x x x x x x],而不是CF_Arr = [[x x x],[x x x]]。当它看起来像后者时,您想要将其写回到工作表中,则必须对其进行遍历,而不是使用类似以下内容一次写完所有内容:
With ActiveSheet
.Range(.Cells((i - 1) * (EndRow - StartRow + 1) + 2, 1), _
.Cells(i * (EndRow - StartRow + 1) + 2, EndCol -
StartCol)).Value2 = cashFlow(i, 1)
end with