0

我有以下代码,当我运行它时,我在 sheetFormulas (4) 中获得了正确数量的项目,并且数组值看起来正确形成。

但是,在 sheetFormulas Browser.msgBox 弹出后立即出现错误,表明 getRange().setFormulas 行有问题,但我看不到它是什么。

function test(){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var testingTarget = ss.getSheetByName("Testing");
    var sheetFormulas = new Array();
    for (l=0;l<10;l++) {
        sheetRowCount = l + 2;
        var monthlyTotalCompanyCosts = '=F' + sheetRowCount + '/$F$29*$I$14';
        var monthlyTotalCompanyCostsPerEa = '=IFERROR(H' + sheetRowCount + '/C' + sheetRowCount + ')';
        var monthlyMargin = '=D' + sheetRowCount + '-F' + sheetRowCount;
        var monthlyMarginPctg = '=IFERROR(J' + sheetRowCount + '/D' + sheetRowCount + ')';
        sheetFormulas.push(monthlyTotalCompanyCosts,monthlyTotalCompanyCostsPerEa,monthlyMargin,monthlyMarginPctg);
    Browser.msgBox("sheetFormulas.length is: " + sheetFormulas.length);
    Browser.msgBox("sheetFormulas is: " + sheetFormulas);
    testingTarget.getRange(sheetRowCount,8,1,4).setFormulas(sheetFormulas);
    sheetFormulas = [];
    }
}

任何帮助表示赞赏,

菲尔

4

1 回答 1

0

首先, sheetFormulas 必须是一个二维数组。所以尝试做

/* Notice the [] around sheetFormulas */
testingTarget.getRange(sheetRowCount,8,1,4).setFormulas([sheetFormulas]);

如果您仍然看到其他问题,请将您的代码放在 try{}catch{} 块中,并在 catch 块中打印出异常。

我还建议您在将公式设置到电子表格之前使用 Logger.log() 打印出公式。

于 2012-08-17T18:28:38.137 回答