我正在基于谷歌表单关于拍卖二手车的电子表格上写一个谷歌脚本。我老师给了我这些指示:
在电子表格中添加一个google脚本,其中包含查找最高出价的功能并更新Google表单字段功能1:检索出价列中的所有值,并使用循环查找最高值。功能2:打开Google表单并更新表单文本字段(例如,当前最高出价是$ 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。
我做错了什么?我刚刚编写了五天,这让我感到困惑。
除此之外,按照上面的说明,我是否在正确的轨道上?
答案 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
错误是因为您尝试打开工作表而未获取其电子表格对象。
希望这会有所帮助:)