将整行数据放入一个二维数组中

我有一个重新计算每个模拟的行,我想跟踪所有的计算值。

目前我使用复制/粘贴和循环偏移将每个模拟直接保存到电子表格中。

我试图切换这个,所以模型运行时,所有的模拟结果都存储在一个二维vba数组中,而不是在表单上,​​然后整个数组打印到最后。 我几乎没有使用数组的经验,所以我的尝试是:

Dim res() As Variant ReDim res (1 To nbSims, 1 To nbLoans) For i = 1 to nbSims ****Code for calculations of each sim*** res(i,@@@) = Range(cells("",""),Cells("","")).Value Next i 

通常情况下,如果我一次填充一个数组元素,我会使用res(i,j)并让它引用一个单元格,但是在这里我试图把整行结果放到一个数组中时间。 有什么build议么?

编辑:我想我已经确定,我需要找出如何填充一组数组,这是可能的吗?

您可以使用2个数组,并将它们与一个循环组合在一起; 在数组1中你的i被locking,并且你在数组1(你的完整数组res())和数组2(新的一维数组)中通过j循环。

 sub RowAdd() dim i,j,k as long dim res() as variant dim arr() as variant dim numcols as long 'number of items in the row you're adding ReDim res (1 To nbSims, 1 To nbLoans) ReDim arr(numcols) for i=1 to nbSims arr=mysheet.range().value for j=1 to numCols res(i,j)=arr(j) next j next i 

请注意,您需要将您的arrays重新设置为正确的大小,否则可能会丢失数据。

这个问题类似于我最近问的问题:

将单独的范围放入二维数组中

如果你想看看。