我如何在setValues函数中求解此错误“参数(number [])don' t匹配电子表格Appapp.range.setValues的方法签名&quot&quot&quot&quot&quot

发布于 2025-02-12 00:33:46 字数 1593 浏览 0 评论 0 原文

我正在用AppScript预先填写Google表单,最后将URL保存在数组中。

var formCol = SpreadsheetApp.getActive().getRangeByName('FORM');
var form = FormApp.openByUrl(FORM_URL);
var items = form.getItems();

var urls = [];
for (let i = 1; i < 4; i++ ) {
    
    var formResponse = form.createResponse();

    var formItem = items[0].asTextItem();
    response = formItem.createResponse(botData.id[i]);
    formResponse.withItemResponse(response);

    formItem = items[1].asTextItem();
    response = formItem.createResponse(botData.bot[i]);
    formResponse.withItemResponse(response);

    var date = new Date (botData.date[i].toString());
    var date2 = botData.date[i].toString();
    
    //var day
    formItem = items[3].asTextItem();
    response = formItem.createResponse(botData.zone[i]);
    formResponse.withItemResponse(response);

    formItem = items[8].asTextItem();
    response = formItem.createResponse(botData.remitent[i]);
    formResponse.withItemResponse(response);

    formItem = items[9].asTextItem();
    response = formItem.createResponse(botData.description[i]);
    formResponse.withItemResponse(response);

    formItem = items[11].asTextItem();
    response = formItem.createResponse(botData.solutiontime[i]);
    formResponse.withItemResponse(response);


    var url = formResponse.toPrefilledUrl();
    //sheet.getRange(row, 31).setValue(url);
    url = url.toString()
    urls.push(url)
    
  }
  formCol.setValues(urls);
}

我想在Google表的“表单”列中打印每个URL,但我会收到错误”
异常:参数(number [])不匹配电子表格Appapp.range.setValues的方法签名。“当我尝试使用setValues打印数组时,我如何解决此错误?

I'm pre-filling a Google form with AppScript, finally I'm saving the urls in an array.

var formCol = SpreadsheetApp.getActive().getRangeByName('FORM');
var form = FormApp.openByUrl(FORM_URL);
var items = form.getItems();

var urls = [];
for (let i = 1; i < 4; i++ ) {
    
    var formResponse = form.createResponse();

    var formItem = items[0].asTextItem();
    response = formItem.createResponse(botData.id[i]);
    formResponse.withItemResponse(response);

    formItem = items[1].asTextItem();
    response = formItem.createResponse(botData.bot[i]);
    formResponse.withItemResponse(response);

    var date = new Date (botData.date[i].toString());
    var date2 = botData.date[i].toString();
    
    //var day
    formItem = items[3].asTextItem();
    response = formItem.createResponse(botData.zone[i]);
    formResponse.withItemResponse(response);

    formItem = items[8].asTextItem();
    response = formItem.createResponse(botData.remitent[i]);
    formResponse.withItemResponse(response);

    formItem = items[9].asTextItem();
    response = formItem.createResponse(botData.description[i]);
    formResponse.withItemResponse(response);

    formItem = items[11].asTextItem();
    response = formItem.createResponse(botData.solutiontime[i]);
    formResponse.withItemResponse(response);


    var url = formResponse.toPrefilledUrl();
    //sheet.getRange(row, 31).setValue(url);
    url = url.toString()
    urls.push(url)
    
  }
  formCol.setValues(urls);
}

I want to print each url in a 'FORM' column of Google Sheets but I get the error "
Exception: The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues." when I try to print the array with setValues, how I can solve this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凌乱心跳 2025-02-19 00:33:46

修改点:

  • 在您的脚本中, urls formcol.setValues(urls)是1维数组。 setValues(value)的参数必须为2维数组。
  • 当您的 var formcol = dreversheetapp.getAppive()。使用getrangeByName('form'); 时,范围的大小是无法知道的。因此,在您的情况下,可能需要修改 urls 的值的范围。

当这些要点反映在您的脚本中时,如下所示。

修改脚本:

从:

  urls.push(url)
  
}
formCol.setValues(urls);

到:

  urls.push([url]);
}
formCol.setValues(urls);

  urls.push([url]);
}
formCol.offset(0, 0, urls.length, 1).setValues(urls);

参考:

Modification points:

  • In your script, urls of formCol.setValues(urls) is 1 dimensional array. The argument of setValues(value) is required to be 2 dimensional array.
  • When your range of var formCol = SpreadsheetApp.getActive().getRangeByName('FORM'); is used, the size of the range cannot be known. So, in your situation, it might be required to modify the range for putting the values of urls.

When these points are reflected in your script, it becomes as follows.

Modified script:

From:

  urls.push(url)
  
}
formCol.setValues(urls);

To:

  urls.push([url]);
}
formCol.setValues(urls);

or

  urls.push([url]);
}
formCol.offset(0, 0, urls.length, 1).setValues(urls);

References:

冷弦 2025-02-19 00:33:46

看来您正在传递 setValues 函数的错误类型的参数。根据文档。

It looks like you are passing an argument that is of the wrong type for the setValues function. According to the documentation, you should pass a two dimensional array.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文