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?