Google 表格脚本 - 特定表格上 运行 更简洁的代码
Google Sheets Script - More concise code to run on specific sheets
我只希望脚本 运行 在工作表 'Trip 1' 到 'Trip 3' 上。
这是我正在使用的脚本:
SORT_DATA_RANGE = "A4:K";
SORT_ORDER = [
{column: 2, ascending: false}, // 3 = column number, sorting by descending order
{column: 6, ascending: true}, // 1 = column number, sort by ascending order
{column: 7, ascending: true},
{column: 8, ascending: true},
];
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 1")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 2")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 3")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}
您可以定义一个常量 - 一个数组,其中包含您要应用排序的 sheet 的名称 SORT_ON_SHEETS = ['Trip 1','Trip 2','Trip 3']
然后在 onEdit() 函数中,检查此 array includes 是否是事件发生的 sheet 的名称
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if (editedRange.getColumn() == 2 && SORT_ON_SHEETS.includes(editedSheet.getName())){
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}
尝试
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if(editedRange.getColumn() == 2 && (editedSheet.getName() == "Trip 1" || "Trip 2" || "Trip 3")){
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}
我只希望脚本 运行 在工作表 'Trip 1' 到 'Trip 3' 上。
这是我正在使用的脚本:
SORT_DATA_RANGE = "A4:K";
SORT_ORDER = [
{column: 2, ascending: false}, // 3 = column number, sorting by descending order
{column: 6, ascending: true}, // 1 = column number, sort by ascending order
{column: 7, ascending: true},
{column: 8, ascending: true},
];
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 1")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 2")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
else if(editedRange.getColumn() == 2 && editedSheet.getName() == "Trip 3")
{
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}
您可以定义一个常量 - 一个数组,其中包含您要应用排序的 sheet 的名称 SORT_ON_SHEETS = ['Trip 1','Trip 2','Trip 3']
然后在 onEdit() 函数中,检查此 array includes 是否是事件发生的 sheet 的名称
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if (editedRange.getColumn() == 2 && SORT_ON_SHEETS.includes(editedSheet.getName())){
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}
尝试
function onEdit(event){
var editedRange= event.range;
var editedSheet= editedRange.getSheet()
if(editedRange.getColumn() == 2 && (editedSheet.getName() == "Trip 1" || "Trip 2" || "Trip 3")){
var range = editedSheet.getRange(SORT_DATA_RANGE);
range.sort(SORT_ORDER);
}
}