0

我正在使用 Notes 中的 LotusScript 代理从 Lotus Notes 数据库填充多页 Excel 电子表格。为了优化代码,我首先将所有数据构建在一个数组中,然后将其转储到 Excel 中,因为一次写入数组比单独写入每个单元格或行要快得多。

所以我有一个包含由定义的数据的三维数组

ReDim sheetData(sheets,rows,columns)

我使用视图导航器条目填充数组没有问题,但是当我开始写入 Excel 时,我想做

For c = 0 to sheets
   With xlSheet(c+1)
      .Range(.Range.Cells(1,1) , .Range.Cells(rows+1, columns+1).Value = sheetData(c)
   End With
Next

这显然行不通,因为我需要为 sheetData 提供三个下标。

那么提取行和列数据的最佳方法是什么?

4

1 回答 1

2

您有两种可能性:您可以遍历所有行和列并直接分配值:

With xlSheet(c+1)
    For row = 1 to rows + 1
        For col = 1 to columns + 1
           .cells( row, col ) = sheetData(c,row,col)
        Next
    Next
End With

或者-如果您可以将二维数组分配给一个范围(我不知道),您可以使用二维数组列表:

ReDim sheetData(row, col) List as Variant

那看起来像 sheetData( 1 ) = [1,2]

然后分配看起来像:

.Range(.Range.Cells(1,1) , .Range.Cells(rows+1, columns+1).Value = sheetData( c )

但是:填充该数组列表可能会很痛苦(使用 ReDim 创建一个临时二维数组,填充该数组并将其分配为 `sheetData( sheet ) = tempArray

于 2013-10-25T11:28:12.923 回答