Google apps script 尝试创建从电子表格中删除行的脚本,可以';我不能让它工作

Google apps script 尝试创建从电子表格中删除行的脚本,可以';我不能让它工作,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我对这一点很陌生,所以我相信解决办法很简单。我正在尝试创建一个代码,允许用户单击一个按钮,按下确认按钮,然后删除所有包含数据的行,减去最上面的行。代码如下: 代码.gs //添加自定义菜单以从中激活功能。 函数onOpen(){ var ui=SpreadsheetApp.getUi(); ui.createMenu('删除响应') .addItem('删除当前响应','删除所有') .addToUi(); } //正在尝试删除包含数据的所有行,减去此处的第一行。 函数deleteAll(){

我对这一点很陌生,所以我相信解决办法很简单。我正在尝试创建一个代码,允许用户单击一个按钮,按下确认按钮,然后删除所有包含数据的行,减去最上面的行。代码如下:

代码.gs

//添加自定义菜单以从中激活功能。
函数onOpen(){
var ui=SpreadsheetApp.getUi();
ui.createMenu('删除响应')
.addItem('删除当前响应','删除所有')
.addToUi();
}
//正在尝试删除包含数据的所有行,减去此处的第一行。
函数deleteAll(){
var ui=SpreadsheetApp.getUi();
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var response=ui.prompt('您确定要删除所有响应吗?',ui.ButtonSet.YES\u NO);
var lastRow=sheet.getLastRow();
if(response.getSelectedButton()==ui.Button.YES){
表.删除行(2,最后一行)
} 
}
当前,当在
工作表的最后一位调用
lastRow
时,deleteRows
Google返回一个错误,说“这些行超出范围”。如果我将其更改为10这样的整数,只是为了看看它是否有效,那么脚本完成后它将不会执行任何操作。我错过了一些简单的东西吗

(x-从Code Review发布,在那里我删除了我的原始帖子。对不起,我以前以为我已经成功地在那里发布了这样一个问题,但看起来它只是发布在一般网站上)。

第二个参数是“要删除的行数”而不是“要删除的最后一行”。更改脚本以反映这一点,并检查是否存在空工作表

if (response.getSelectedButton() == ui.Button.YES && lastRow-1>0) {
  sheet.deleteRows(2, lastRow-1)   
} 

这似乎解决了一个问题,但带来了另一个问题。现在,当我运行脚本时,它返回一个错误,声明“抱歉,无法删除所有未冻结的行”。这是否表明我的脚本正在尝试删除所有行,而不仅仅是包含内容的行?我不确定这怎么可能,所以我不确定现在的问题是什么。感谢您迄今为止的投入!在这种情况下,我建议您将deleteRows调用替换为清除内容的调用:
sheet.getRange(2,1,lastRow-1,sheet.getLastColumn()).clear()谢谢你的帮助!长话短说,我是个傻瓜,我在
工作表
变量中选择了错误的工作表(第二个工作表应该是
1
,而不是
0
第一个工作表),所以原始代码实际上可以正常工作。我感谢你的帮助!