3

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

我正在尝试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 是我希望此操作发生的行的行号。

这要么什么都不做,要么仍然将公式复制到相同的单元格中。

我确定这是我想念的一些愚蠢的小东西,但我不能指望它。

我怎样才能解决这个问题?或者有没有更简单的方法来做到这一点?先感谢您。

4

1 回答 1

2

我上面在问题上显示的函数 getRange() 和 copyValuesToRange() 的参数放错了位置。

功能是:

getRange(row, column, optNumRows, optNumColumns)


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

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

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

而不是上面的问题。

于 2012-12-27T12:47:28.380 回答