清除单元格并获取 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() 部分,因为无论如何内容都会被覆盖。
我想制作一个脚本来清除除前四个 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() 部分,因为无论如何内容都会被覆盖。