0

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

到目前为止,我有一个脚本来清空单元格并用一个新函数填充它来获取工作表名称。第一个脚本在打开电子表格时触发。但是,它只是说正在加载……而不是获取工作表名称。

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

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()');
    })
}

有什么好主意吗?谢谢

4

2 回答 2

0

相同的方法,但稍作修改

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'

于 2015-11-03T11:21:25.503 回答
0

与其将自定义函数写入单元格,不如自己编写工作表名称?像这样...

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

如果需要,您可以触发此功能以运行 onOpen..

注意:我认为您甚至可以省略 .clearContent() 部分,因为内容将被覆盖。

于 2015-11-03T12:23:19.560 回答