我一直在编码:
function deleteSheets(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for(var i = 0; i<=sheets.length; i++){
var name = sheets[i].getName();
if (name == "aux"){
ss.deleteSheet(sheets[i]);
}else if(name == "nulos"){
ss.deleteSheet(sheets[i]);
}
/* switch(sheets[i].getName()){
case sheets[i].getName() == "aux":
ss.deleteSheet(sheets[i]);
break;
case sheets[i].getName() == "nulos":
ss.deleteSheet(sheets[i]);
break;
case name == "aux":
ss.deleteSheet(sheets[i]);
break;
}
*/
}
}
试图做一个简单的&#34; deleteSheet&#34;使用开关,但没有工作,然后使用if只是为了看到同样的错误:
TypeError:无法调用方法&#34; getName&#34;未定义的。 (第8行,文件&#34;代码&#34;)
我错过了什么?很确定我以前做过类似的事情......
(如果它很明显,我很抱歉,我是
答案 0 :(得分:1)
你的陈述错了。
您写道:
for(var i = 0; i<=sheets.length; i++){}
但是当i = sheets.length时,你已经离开了数组,所以你试着调用getName()什么都没有。你应该
for(var i = 0; i<sheets.length; i++){}
为避免这样的错误,请考虑使用
var i = 0
for(i in sheets){}
我自动增加。这里有一些关于for/in statement
的更多细节