Google apps script 如何只删除一些工作表?

Google apps script 如何只删除一些工作表?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,以下是我正在做的事情(我从旧消息中复制并尝试改编): 1) 在有许多工作表的电子表格中,创建一个工作表并将其重命名为“TOC” 2) 在“TOC”中,在A1:=SheetNames(GoogleClock())中添加此公式 3) 在谷歌应用程序脚本中复制后,运行下面的函数“SheetNames” function SheetNames(){//这将创建所有工作表的列表;) 试一试{ var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheet

以下是我正在做的事情(我从旧消息中复制并尝试改编):

1) 在有许多工作表的电子表格中,创建一个工作表并将其重命名为“TOC”

2) 在“TOC”中,在A1:=SheetNames(GoogleClock())中添加此公式

3) 在谷歌应用程序脚本中复制后,运行下面的函数“SheetNames”

function SheetNames(){//这将创建所有工作表的列表;)
试一试{
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets()
var out=新数组(表长+1);
out[0]=[“Name”,“gid”];
对于(var i=1;i
4) 运行函数“仅删除部分工作表”

函数仅删除部分工作表(){
//小心!!它会删除一些工作表!
var ss=SpreadsheetApp.getActiveSpreadsheet();
var source=ss.getSheetByName(“TOC”);

对于(var i=3;i首先,没有
getSheetId()
方法。我假设您在这里指的是
getSheets()
方法,它返回一个
Sheet
对象数组

其次,
setActiveSheet()
Sheet
对象作为参数

ss.setActiveSheet(ss.getSheets()[i]);

无需读取TOC表、获取id等。

首先,没有
getSheetId()
方法。我假设您在这里指的是
getSheets()
方法,该方法返回
sheet
对象数组

其次,
setActiveSheet()
Sheet
对象作为参数

ss.setActiveSheet(ss.getSheets()[i]);

无需阅读TOC表、获取id等。

您好,谢谢您的帮助。;)我对第二部分有一个问题:在过去的时间里,我手工删除了电子表格中的一些表…因此我没有删除表(3)+表(4)+表(5)。事实上,我正在删除表(76)+表(112)+表(34)其他电子表格也会有其他的数字,因此在表格“TOC”中列出表格名称及其id!提前谢谢;)再次你好,谢谢你。我找到了解决方案。见上文。非常感谢。;)酷。既然你是新来的,我想提醒你,如果你对答案满意,你应该点击答案旁边的勾号来接受答案。你好,谢谢你的帮助。;)我对第二部分有个问题:随着时间的推移,我我已经手工删除了我的电子表格中的一些表格…所以我不是在删除表格(3)+表格(4)+表格(5)。事实上,我是在删除表格(76)+表格(112)+表格(34),其他电子表格将使用其他数字,因此我想在表格“TOC”中列出表格名称及其id!提前谢谢;)再次你好,谢谢你。我找到了解决方案。请参见上文。非常感谢。;)酷。既然你是新来的,我想提醒你,如果你对答案满意,你应该单击答案旁边的勾号接受答案。
function delete_only_some_sheets() {
// CAUTION !! IT will delete some sheets ! 
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getSheetByName("TOC");
for (var i = 3; i<=5; i++){ // !!! HERE adapt the "5" number to your needs here
var tet = source.getRange(["A"]+[(i)]).getValues();

ss.setActiveSheet(ss.getSheetByName(tet));
ss.deleteActiveSheet();

}
ss.setActiveSheet(ss.getSheets()[i]);