清除单元格并获取 Google sheet 名称

Clear a cell and fetch the Google sheet name

我想制作一个脚本来清除除前四个 sheet 之外的所有 sheet 上的固定单元格,并用 sheet 名称填充同一个单元格。

到目前为止,我有一个脚本可以清空单元格并用一个新函数填充它来获取 sheet 名称。第一个脚本在打开点差时触发 sheet。但是,它只是说正在加载……并没有获取 sheet 个名称。

我当前的(非工作脚本):

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}


function clearRange() {
SpreadsheetApp.getActive().getSheets()
    .map(function (s, i) {
        if (i > 3) s.getRange('B3').clearContent().setFormula('=sheetName()');
    })
}

有什么好主意吗? 谢谢

相同的方法,但稍作修改

function clearRange(n, range) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  sheets.map(function(sheet,index){
    if (index > n) sheet.getRange(range).clearContent();
  });
}

// call the function
function run(){
  clearRange(3, 'B3')
}

如果您想将函数与其他参数一起使用,您可以传递参数 n 和范围而不是硬编码的 3 和 'B3'

为什么不自己写 sheet 名称而不是将自定义函数写入单元格?像这样...

function clearRange() {
SpreadsheetApp.getActive().getSheets()
.map(function (s, i) {
    if (i > 3) s.getRange('B3').clearContent().setValue(s.getName());
    })
}

如果需要,您可以触发此函数 运行 onOpen..

注意:我认为您甚至可以省略 .clearContent() 部分,因为无论如何内容都会被覆盖。