我正在使用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提供三个下标。
那么提取行和列数据的最佳方法是什么?
答案 0 :(得分: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)列为变体
那看起来像
sheetData( 1 ) = [1,2]
然后分配看起来像:
.Range(.Range.Cells(1,1) , .Range.Cells(rows+1, columns+1).Value = sheetData( c )
但是:填充数组列表可能很痛苦(使用ReDim创建一个临时的二维数组,填充该数组并将其分配为`sheetData(sheet)= tempArray