(在C#中(尽管语言无关紧要))
range.Formula = array;
不会导致错误,但行为完全一样
range.Value2 = array;
:公式显示为值。只有在我执行F2后,在单元格上输入,才能正确评估其公式。
这是我填充数组的方式:
// setup (parameters)
int rows = cols = 10;
int rowStep = 1000*1000;
var array = new string[rows, cols];
// Fill the array.
for (long iRow = 1; iRow == rows; iRow++)
{
for (long iCol = 1; iCol == cols; iCol++)
{
// Put a count in the cell. E.g. "=A1+1+1000000"
array[iRow-1, iCol-1] = "=A1+" + iCol + "+" + (iRow * rowStep);
}
}
如果我使用object[,]
而不是string[,]
,对我有用。
不要问我为什么,但这(第二行)修正了它:
range.Formula = array;
range.Formula = range.Formula;
不幸的是,这需要两倍的时间。有没有更好的方法可以避免这种惩罚?
上面的解决方案是由this帖子通知的。