【发布时间】:2017-10-11 17:09:42
【问题描述】:
我有这段代码:
function deleteSheets(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var transp = ss.getSheetByName("aux").getRange("A2:A").getValues();
var i =0;
var c = 0;
var name;
for(i in sheets){
for(c in transp){
var nome_transp = transp[c][0];
switch(name = sheets[i].getName()){
case name == transp[c]:
ss.deleteSheet(sheets[i]);
break;
case name == "aux":
ss.deleteSheet(sheets[i]);
break;
case name == "nulos":
ss.deleteSheet(sheets[i]);
break;
case name == "Sem Transportadora":
ss.deleteSheet(sheets[i]);
break;
}
}
}
}
我可以通过调试看到“sheets”和“transp”中的计数器和值是正确的,但它们从不删除各自的表,“aux”、“nulos”和“Sem transportadora”也没有那些。是的,工作表与数组同名。
有什么见解吗?提前致谢!
【问题讨论】:
-
也许你在 switch 语句上犯了一个错误:case name == transp[c] 应该是 case name == transp[c][0] ?
-
不,那也没用 :(
-
据我了解,您尝试删除一些工作表,一些是“辅助”工作表中的列表,其他是硬写在您的代码上的,对吗?
-
是的,就是这样
-
Transp[c] 将是工作表的名称,我使用相同的数组在另一个函数中创建它们
标签: google-apps-script google-sheets