copyValuesToRange同一行

时间:2012-12-27 00:04:56

标签: google-apps-script google-sheets

我想创建一个小脚本,将通过公式获得的所有行值复制到没有公式的同一行。

我正在尝试在同一行使用copyValuesToRange。 (我会得到在某一行上计算的值,我会将它们与那些相同的值重叠,不计算公式。)

一点情境化......我正在对游戏的价值做一种记录/预视。在同一张纸上,我有过去的记录,今天的记录和值仍然会发生。

要获得这些值,工作表每行执行一些计算,但我希望它只计算尚未发生的值。因此,每天,工作表应执行清除前一天公式的操作。为此我试着做以下事情:

function example(oRow){

    var app = SpreadsheetApp.getActiveSpreadsheet();
    var sheetRecord = app.getSheetByName("Record");

    sheetRecord.getRange(oRow-1,1,1,18)
      .copyValuesToRange(sheetRecord,1,18,oRow-1,oRow-1);
}

oRow是我想要进行此操作的行的行号。

这无论是无所事事,还是仍然将公式复制到相同的单元格。

我确定这是一些我不知道的愚蠢的事情,但我不能指责它。

我该如何解决这个问题?或者有更简单的方法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我在问题上面显示的函数getRange()和copyValuesToRange()的参数是错失的。

功能是:

getRange(row, column, optNumRows, optNumColumns)


copyValuesToRange(sheet, startColumn, endColumn, startRow, endRow)

因此,如果我想将第1行的值(例如第9行)复制到第15行(“A9:P9”)到同一行,我必须执行以下操作:

sheetRecord.getRange(oRow-1,1,1,18).copyValuesToRange(sheetRecord,1,18,oRow-1,oRow-1);

而不是上面的问题。