Javascript “simple”上的服务器错误;删除工作表/插入工作表;剧本

Javascript “simple”上的服务器错误;删除工作表/插入工作表;剧本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我在一个非常简单的脚本上收到一个服务器错误,我不知道为什么。脚本的目的是检查工作表是否已经存在。如果图纸确实存在,则应删除并重新创建该图纸。如果它不存在,应该创建它 如果工作表不存在,脚本可以正常工作。如果它确实存在,脚本将删除该工作表,然后在带有.insertSheet的行中抛出以下错误(“Test”) 很抱歉,发生服务器错误。请稍等,然后重试 非常感谢您的帮助 function新闻单(){ var spreadsheet=SpreadsheetApp.getActiveSpreadshee

我在一个非常简单的脚本上收到一个服务器错误,我不知道为什么。脚本的目的是检查工作表是否已经存在。如果图纸确实存在,则应删除并重新创建该图纸。如果它不存在,应该创建它

如果工作表不存在,脚本可以正常工作。如果它确实存在,脚本将删除该工作表,然后在带有.insertSheet的行中抛出以下错误(“Test”)

很抱歉,发生服务器错误。请稍等,然后重试

非常感谢您的帮助

function新闻单(){
var spreadsheet=SpreadsheetApp.getActiveSpreadsheet(),
sheet=电子表格。getSheetByName(“测试”);
如果(工作表!=null){
电子表格。删除表格(表格);
}
电子表格。插入表(“测试”);

}
如果工作表不存在,脚本可能会抛出错误。你可以把它放在试抓块里

function newSheet() {

  var sheet, spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  try {
    sheet = spreadsheet.getSheetByName("Test");
    spreadsheet.deleteSheet(sheet);
  } catch (e) {};

  spreadsheet.insertSheet("Test");

}

我也犯了同样的错误。这可能是一个错误。您可能需要使用
sheet.clear()

也许有些代码是这样的:

function newSheet() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
      sheet = spreadsheet.getSheetByName("Test");
  if(sheet != null){
    sheet.clear();
  } else { 
    spreadsheet.insertSheet("Test");
  }
}

只需清除当前工作表中的所有内容,而不是删除该工作表并创建另一个同名工作表。我不知道你删除这张表有什么好处,希望清除后能得到你想要的结果。如果没有,我很想知道为什么需要删除工作表?

试试,传入索引

function newSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
    sheet = spreadsheet.getSheetByName("Test");
if (sheet != null) {
    spreadsheet.deleteSheet(sheet);
    }
spreadsheet.insertSheet("Test", spreadsheet.getSheets().length);
}

看看效果如何?

谢谢你的意见,阿米特。但是,当工作表已经存在时,它会抛出错误。上述解决方案。