我写了一个简单的脚本来自动对各种表格中的新输入进行排序,但我想排除第一张表格。这是我的剧本:
function onEdit(){
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 2) {
var range = sh.getRange("A3:P20");
range.sort({column: 2});
}
}
因此,如果我在处理前两页时使用.getActiveSheet(),脚本将完成它的工作,但不需要。我可以停止剧本,暂停吗? 谢谢你的回复。 贝
答案 0 :(得分:0)
这将使您无法使用前两张纸。你也可以使用他们的名字,因为如果你移动它们,那么前两张将改变。函数isOneOfTheFirstTwo如下所述:
function onEdit(e){
if(!isOneOfFirstTwo(e.source.getActiveSheet()))
{
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 2)
{
var range = sh.getRange("A3:P20");
range.sort({column: 2});
}
}
}
下面的函数从电子表格中获取所有工作表的数组,并查看前两个电子表格左侧的前两个工作表。如果你移动它们,那么前两张纸将会改变。任何方式我只看和前两个并问问题是sh.getName()== allSheets [i]如果前两个中的任何一个回答是,则函数返回true,否则返回false。循环不会超过前两张。
function isOneOfFirstTwo(sh)
{
var allSheets=SpreadsheetApp.getActive().getSheets();
var r=false;
for(var i=0;i<2;i++)
{
if(sh.getName()==allSheets[i].getName())
{
r=true;
break;
}
}
return r;
}
答案 1 :(得分:0)
谢谢你的回答。 我真的是一个新手,并试图将你的代码放入我的,但我在调试时遇到了错误。是否可以将您的脚本完全放入我的脚本中。我想我试图把它弄错了。
function isOneOfFirstTwo(sh)
{
var allSheets=SpreadsheetApp.getActive().getSheets();
var r=false;
for(var i=0;i<2;i++)
{
if(sh.getName()==allSheets[i].getName())
{
r=true;
break;
}
}
return r;
}
function onEdit(){
if(!isOneOfFirstTwo(e.source.getActiveSheet()))
{
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var editedCell = sh.getActiveRange().getColumnIndex();
if(editedCell == 2) {
var range = sh.getRange("A3:P20");
range.sort({column: 2});
}
}
}