谷歌应用程序脚本电子表格重命名错误



我正在进行一个谷歌应用程序脚本项目,我的最后一行代码遇到了问题:

sheets[0].setName(sheet.getRange(i,3).getValue());

该脚本接受以电子表格"mysheet"为目标的Google Form输入,并根据该输入创建表单。如果第I列(9)中没有文本,则脚本将启动,生成一个新表单,填充第9列,并在当前工作簿中创建一个新的目标电子表格。

这一切都很好。我遇到的问题是最后一个阶段,重命名新创建的电子表格。脚本要么没有错误就死了,要么我收到了一个非描述性的服务代码错误。我基本上需要将新生成的电子表格重命名为表单的名称。我有另一张表单将进行vlookup,新表单的名称不能是随机的"表单响应#"

我在谷歌的代码系统中发现了这个错误。https://code.google.com/p/google-apps-script-issues/issues/detail?id=5537

无论如何,对我来说,这描述了正在发生的事情。在项目的早期,错误导致位置1的工作表被重命名,因为系统认为它是0。我不知道为什么这种情况不再发生。我一定更改了一些内容,但脚本编辑器只进行了十几次修订,所以我无法跟踪它

我想如果我在表格"mySheet"上强制重置名称:

sheet.setName("mySheet");

它可能会起作用。它确实做到了。从那以后,我添加了大量的代码(下面是骨架版本),解决方案不再有效。我再次修剪了我的代码,看看它是否是我添加的东西,但它似乎仍然不起作用。我还尝试将另一张工作表设置为活动工作表,但似乎也不起作用。

有人有什么建议吗?提前感谢您的想法。

function myFunction() {
  var ss = SpreadsheetApp.openById('1gg8FTt_3_Ude5qEmpqlvjZdQocXbYzOKJrgGeLC3cMc');
  var sheet = ss.getSheetByName("mySheet");
  var range = sheet.getRange("A1:I7");
  for (var i = 1; i <= range.getNumRows(); i++) {
      var cell = sheet.getRange(i,9).getValue();
      if(cell == ''){
        var form = FormApp.create(sheet.getRange(i,3).getValue());
        var linktoliveform = form.getPublishedUrl();
        var contentsforcell = '=HYPERLINK("' + linktoliveform + '","' + sheet.getRange(i,3).getValue() + '")';
        sheet.getRange(i,9).setValue(contentsforcell);
        form.setCollectEmail(true);
        form.setDescription(sheet.getRange(i,4).getValue());
        var item = form.addParagraphTextItem();
        item.setTitle(sheet.getRange(i,5).getValue());
        form.setDestination(FormApp.DestinationType.SPREADSHEET,'1gg8FTt_3_Ude5qEmpqlvjZdQocXbYzOKJrgGeLC3cMc');
        //sheet.setName("mySheet"); //reset name on mySheet sheet to force sheets/getsheets list to renumerate. https://code.google.com/p/google-apps-script-issues/issues/detail?id=5537
        var sheets = ss.getSheets();
        sheets[0].setName(sheet.getRange(i,3).getValue());            
        }
      }
  }

我为原始表单设置了一个新的目标工作表,脚本开始与一起正常工作

sheet.setName("mySheet");

重返赛场。我猜是什么东西被损坏了,或者是测试后床单变得臃肿了。

最新更新