使用Google Script Editor添加到电子表格

时间:2017-06-24 09:39:04

标签: javascript google-apps-script

我正在基于谷歌表单关于拍卖二手车的电子表格上写一个谷歌脚本。我老师给了我这些指示:

在电子表格中添加一个google脚本,其中包含查找最高出价的功能并更新Google表单字段功能1:检索出价列中的所有值,并使用循环查找最高值。功能2:打开Goog​​le表单并更新表单文本字段(例如,当前最高出价是$ xxxx,请输入您的出价)。其中xxxx是最高出价。 (参考:https://developers.google.com/apps-script/reference/forms/)在脚本中创建一个触发器,触发上述功能并更新Google表单。

这是我的代码:

function myFunction(e) {
  var ss = SpreadsheetApp.getActive().getSheetByName('Used Car Auction')
  var form = FormApp.openById('1D0XE9womWv2T_rFYTtc9enQgIhCkxaK8SErxNkTh7NE')
  ScriptApp.newTrigger('onFormSubmit')
  .forForm(form)
  .onFormSubmit()
  .create();
  var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues()
  var bid = values [88000]
  var highest = Math.max(bid).toString();
  formsetTitle('Used car auction:' + 'The highest bid is:' + highest)
  .setDescription ('Description of Form')
  .setConfirmationMessage('Thanks for bidding!')
  .setAllowResponseEdits(false)
  .setAcceptingResponses(true);
  }

谷歌说:TypeError:无法调用方法" getSheetByName" null。

我做错了什么?我刚刚编写了五天,这让我感到困惑。

除此之外,按照上面的说明,我是否在正确的轨道上?

1 个答案:

答案 0 :(得分:1)

您的代码中存在一些基本错误。要将值写入Google电子表格中的工作表,您必须遵循某些步骤。

步骤1:获取电子表格对象。

e.g. var spreadsheetObject = SpreadsheetApp.getActiveSpreadsheet(); -> If you are using bounded script.

OR e.g. var spreadsheetObject = SpreadsheetApp.openById(<SPREADSHEET_ID>); -> If you are using standalone script.

步骤2:获取工作表对象。

e.g. var worksheetObject = spreadsheetObject.getSheetByName(<NAME_OF_WORKSHEET>);

您收到此TypeError: Cannot call method "getSheetByName" of null错误是因为您尝试打开工作表而未获取其电子表格对象。

希望这会有所帮助:)