【问题标题】:Clear a cell and fetch the Google sheet name清除单元格并获取 Google 工作表名称
【发布时间】:2020-06-21 11:28:27
【问题描述】:
我想编写一个脚本来清除除前四个之外的所有工作表上的固定单元格,并用工作表名称填充同一个单元格。
到目前为止,我有一个脚本可以清空单元格并用一个新函数填充它以获取工作表名称。第一个脚本在打开电子表格时触发。但是,它只是说正在加载……而不是获取工作表名称。
我当前的(非工作脚本):
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()');
})
}
有什么好主意吗?
谢谢
【问题讨论】:
标签:
google-apps-script
google-sheets
google-sheets-custom-function
【解决方案1】:
您为什么不自己编写工作表名称,而不是向单元格编写自定义函数?就这样……
function clearRange() {
SpreadsheetApp.getActive().getSheets()
.map(function (s, i) {
if (i > 3) s.getRange('B3').clearContent().setValue(s.getName());
})
}
如果需要,您可以触发此函数运行 onOpen..
注意:我认为您甚至可以省略 .clearContent() 部分,因为内容将被覆盖。
【解决方案2】:
方法相同,但稍作修改
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',以防您想将该函数与其他参数一起使用