我可以在 Google 张中简化我的脚本吗?
Can I Simplify my Script in Google Sheets?
我已经构建了一个 Google Sheet 使用脚本在编辑时自动为 sheet 上的某些事件添加时间戳。
两个计时器仅用于对两个特定单元格的第一次编辑计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 3 ) {
var nextCell = r.offset(0, 19);
if( nextCell.getValue() === '' )
nextCell.setValue(new Date());
}
}
}
两个额外的计时器为两个其他单元格被编辑的任何实例计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 9 ) {
var nextCell = r.offset(0, 15);
nextCell.setValue(new Date());
}
}
}
当一个特定单元格中发生三个特定条目时,其他三个计时器会计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 5 ) {
var nextCell = r.offset(0, 20);
if( r.getValue() === "3 - Menu Ready")
nextCell.setValue(new Date()).setNumberFormat('dd-MM-yyyy HH:mm:ss');
}
}
}
我的问题是每个 sheet 我有七个脚本,并且有 4 个 sheet 使用这些脚本(所以总共有 28 个脚本 运行ning)。我的 Google 报价是同时 运行ning 30 个脚本。任何人都可以想办法将这些脚本更快地简化为 运行 或组合任何脚本以便在任何给定时间我拥有更少的 运行ning 吗?
任何帮助将不胜感激!!!
我的建议是将所有逻辑组合到一个“onEdit”函数中。
这是我的代码 approach/suggestion 来处理它:
if(s.getName() == "SUBARU") {
//put the logic to handle sheet SUBARU
} else if(s.getName() == "ABC") {
//put the logic to handle sheet ABC
} else if(s.getName() == "DEF") {
//put the logic to handle sheet DEF
}
我已经构建了一个 Google Sheet 使用脚本在编辑时自动为 sheet 上的某些事件添加时间戳。
两个计时器仅用于对两个特定单元格的第一次编辑计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 3 ) {
var nextCell = r.offset(0, 19);
if( nextCell.getValue() === '' )
nextCell.setValue(new Date());
}
}
}
两个额外的计时器为两个其他单元格被编辑的任何实例计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 9 ) {
var nextCell = r.offset(0, 15);
nextCell.setValue(new Date());
}
}
}
当一个特定单元格中发生三个特定条目时,其他三个计时器会计时:
function onEdit() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "SUBARU" ) {
var r = s.getActiveCell();
if( r.getColumn() == 5 ) {
var nextCell = r.offset(0, 20);
if( r.getValue() === "3 - Menu Ready")
nextCell.setValue(new Date()).setNumberFormat('dd-MM-yyyy HH:mm:ss');
}
}
}
我的问题是每个 sheet 我有七个脚本,并且有 4 个 sheet 使用这些脚本(所以总共有 28 个脚本 运行ning)。我的 Google 报价是同时 运行ning 30 个脚本。任何人都可以想办法将这些脚本更快地简化为 运行 或组合任何脚本以便在任何给定时间我拥有更少的 运行ning 吗?
任何帮助将不胜感激!!!
我的建议是将所有逻辑组合到一个“onEdit”函数中。
这是我的代码 approach/suggestion 来处理它:
if(s.getName() == "SUBARU") {
//put the logic to handle sheet SUBARU
} else if(s.getName() == "ABC") {
//put the logic to handle sheet ABC
} else if(s.getName() == "DEF") {
//put the logic to handle sheet DEF
}