【问题标题】:Cannot find function setValues in object Spreadsheet在对象电子表格中找不到函数 setValues
【发布时间】:2018-08-30 12:38:55
【问题描述】:

这个错误信息快把我逼疯了。这可能很简单,但我对此很陌生。我很感激我能得到的任何帮助。

此计划适用于我们的员工通过 Google 表单提交的设备检查。它应该从提交的电子表格中获取原始数据,检查是否有特定于设备的电子表格 - 如果有,它应该制作一张带有检查日期的新表格,如果没有,它应制作一个新的电子表格,以设备的单元号为标题。然后,我希望将原始数据复制到新的电子表格/工作表中。

这部分完成后,我需要编写代码以将新工作表上的原始数据格式化为更易读和用户友好的格式 - 但我还没有完成。

问题是当我尝试将标题值插入新工作表(第 17 行)时 - “TypeError:无法在对象电子表格中找到函数 setValues。(第 17 行,文件“代码”)”

这是我目前的代码:

    function onFormSubmit() {
  // onFormSubmit
  // get submitted data
  var ss = SpreadsheetApp.openById("1PieNQjjgjsZIEhTwmzGN9BcUXPSscWnWnnYL8XvjpTA");
  var sheet = ss.getSheetByName("Submissions");
  var row = sheet.getLastRow();
  var Col = sheet.getLastColumn();
  var headings = sheet.getRange(1,1,1,Col).getValues();
  var lastRow = sheet.getRange(row, 1, 1, Col);
  var UnitNumber = sheet.getRange(row,3,Col).getValue(); 
  // check if username has sheet
  if(ss.getSheetByName(UnitNumber)){
    var DrillSheet = ss.getSheetByName(UnitNumber);
    // if not make
  } else {
   var DrillSheet = SpreadsheetApp.create(UnitNumber); 
    DrillSheet.getRange(1,1,1,Col).setValues(headings);
  }
  // copy submitted data to Drill sheet
  DrillSheet.appendRow(lastRow.getValues()[0]);
  DrillSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
  DrillSheet.appendRow(['=TRANSPOSE(B1:2)']);
}

提前感谢您的帮助。

【问题讨论】:

  • 考虑添加错误信息,让您的案例更容易理解。
  • 谢谢,已添加错误信息。
  • Range vs Sheet vs Spreadsheet - 它们是不同的类。

标签: google-apps-script google-sheets google-forms


【解决方案1】:

创建新电子表格时,您需要定义要将标题添加到哪个单独的工作表。您需要使用.getSheetByName() 获取工作表对象。第一个工作表始终称为“Sheet1”,因此您可以在脚本中按名称获取它。一个简单的解决方法是将第 17 行更改为:

DrillSheet.getSheetByName('Sheet1')getRange(1,1,1,Col).setValues(headings);

【讨论】:

  • 谢谢!我知道这很简单。我真的很感激!
  • 顺便说一句,布赖恩,我想你昨天有事。这现在工作得很好,但它仍然每次都生成一张新工作表,即使已经存在单元编号的电子表格。你知道是什么原因造成的吗?
  • 在第 10 行添加 .toString(),因为按名称获取工作表是字符串,而不是对象值。
  • 我没有改变就这样做了。它之前也考虑过它是一个字符串。
  • 我想我找到了。在第 10 行,您将得到 UnitNumber 作为一个范围。如果要将其作为字符串进行比较,它应该是一个单元格。所以,它应该是:var UnitNumber = sheet.getRange(row, 3).getValue(); 来获取最后一行,第 3 列。否则,在您的 if 块中,您需要指定要比较的 UnitNumber 数组的哪个索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多