谷歌工作表脚本:范围号不起作用



为什么以这种方式写入的范围不起作用?

function Copiarisultati() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange(18,3,0,1).activate();
spreadsheet.getRange(15,3,0,1).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

此代码中存在两个问题:

  1. 您没有得到Sheet对象
  2. 使用getRange(row, column, numRows, numColumns)时,numRows不能为零。如果它numRows为零,则表示您没有引用任何内容。最小值应为1

解释:SpreadsheetApp.getActive((返回的是一个Spreadsheet对象,但不是一个Sheet对象。检查此项:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getActive((

因此,在您的情况下,请使用SpreadsheetApp.getActiveSheet(),而不是使用SpreadsheetApp.getActive()。(如果您正在参考您现有的活动表(

function Copiarisultati() {
var spreadsheet = SpreadsheetApp.getActiveSheet();
var val = spreadsheet.getRange('C1').getValue();
spreadsheet.getRange(18,3,0,1).activate();
spreadsheet.getRange(15,3,0,1).copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
};

请注意,有许多方法可以在不使用"活动"的情况下参照图纸。

如果我想引用电子表格中名为"Sheet2"的表格,一个例子是:

var spreadsheet = SpreadsheetApp.openByUrl("the Spreadsheet url").getSheetByName("Sheet2")
...

请研究此文档以了解更多信息:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-apphttps://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,整数,Integer(

最新更新