Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script clearcontent/clearcontent和保留公式出错_Google Apps Script - Fatal编程技术网

Google apps script clearcontent/clearcontent和保留公式出错

Google apps script clearcontent/clearcontent和保留公式出错,google-apps-script,Google Apps Script,以下代码有问题: function addDelivery() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var srcSheet = ss.getSheetByName("Sheet7"); var range = srcSheet.getRange("B3:L3").getValues(); var formulas = srcSheet.getRange("B3:L3").getFormulas(); srcS

以下代码有问题:

function addDelivery() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var srcSheet = ss.getSheetByName("Sheet7");

  var range = srcSheet.getRange("B3:L3").getValues();
  var formulas = srcSheet.getRange("B3:L3").getFormulas();
  srcSheet.insertRowBefore(6);
  srcSheet.getRange(6,2,1,11).setValues(range);
  range.clearContents();
  range.setFormulas(formulas);
我想清除单元格B3:L3的内容,但将公式保留在L3中

我收到错误消息“TypeError:range.clearContent不是函数”。 我读到clearContent是一种范围方法,而clearContent是一种表格方法。 我两个都试过了,但都不管用

请帮忙

致意
manc

也许这样效果更好:

function addDelivery() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("Sheet7");
  var range=srcSheet.getRange("B3:L3");  
  var values = range.getValues();
  var formulas = range.getFormulas();
  srcSheet.insertRowBefore(6);
  srcSheet.getRange(6,2,1,11).setValues(values);
  range.setFormulas(formulas);
  srcSheet.getRange("B3:K3").clearContent();
我想了很多,我想我可能会这样做:

  function addDelivery() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("Sheet7");
  var range = srcSheet.getRange("B3:L3");  
  var values = range.getValues();
  var formula = srcSheet.getRange("L3").getFormula();
  srcSheet.insertRowBefore(6);
  srcSheet.getRange(6,2,values.length,values[0].length).setValues(values);
  srcSheet.getRange("L3").setFormula(formula);
  srcSheet.getRange("B3:K3").clearContent();

也许这会更好:

function addDelivery() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("Sheet7");
  var range=srcSheet.getRange("B3:L3");  
  var values = range.getValues();
  var formulas = range.getFormulas();
  srcSheet.insertRowBefore(6);
  srcSheet.getRange(6,2,1,11).setValues(values);
  range.setFormulas(formulas);
  srcSheet.getRange("B3:K3").clearContent();
我想了很多,我想我可能会这样做:

  function addDelivery() {
  var ss = SpreadsheetApp.getActive();
  var srcSheet = ss.getSheetByName("Sheet7");
  var range = srcSheet.getRange("B3:L3");  
  var values = range.getValues();
  var formula = srcSheet.getRange("L3").getFormula();
  srcSheet.insertRowBefore(6);
  srcSheet.getRange(6,2,values.length,values[0].length).setValues(values);
  srcSheet.getRange("L3").setFormula(formula);
  srcSheet.getRange("B3:K3").clearContent();

问题是您声明了
var range=srcSheet.getRange('B3:L3')。getValues()
so range不是类range的对象。它是一个二维值数组。而且range只有方法clearContent()。问题是您声明了
var range=srcSheet.getRange('B3:L3')。getValues()
so range不是类range的对象。这是一个2D值数组。而且Range只有方法clearContent(),你是2对2:)非常感谢。因此,调用范围来设置(6,2,1,11)中的值的方式,同样的方法适用于调用getRange到clearContent这就省去了计算数据量的麻烦。因此,看起来您在第3行收集数据,然后在第6行进行后进先出,然后在第3行清除新数据。完全正确。库珀。感谢您的帮助和努力。如果从第6行开始是命名范围的一部分,则每次添加一行时,命名范围也会移动-即使我将范围定义为$B$6:M,它也不会停留在第6行-它会更改为B7:M、B8:M等。如何将范围硬编码为保持在B6:M?你是2对2:)非常感谢。因此,调用范围来设置(6,2,1,11)中的值的方式,同样的方法适用于调用getRange到clearContent这就省去了计算数据量的麻烦。因此,看起来您在第3行收集数据,然后在第6行进行后进先出,然后在第3行清除新数据。完全正确。库珀。感谢您的帮助和努力。如果从第6行开始是命名范围的一部分,则每次添加一行时,命名范围也会移动-即使我将范围定义为$B$6:M,它也不会停留在第6行-它会更改为B7:M、B8:M等。如何将范围硬编码为停留在B6:M?