我有一个谷歌网站,其中一些脚本按时运行触发器。
我有不同用户的多个列表页面。 我正在使用的脚本是从谷歌网站列表页面获取值并将这些值放在谷歌工作表中。
我正在添加一个新用户,我复制了适用于所有以前用户的代码,并为新用户粘贴了代码,为其提供了* UsernameList()的函数名称。
这个相同的代码适用于其他用户,但是这个代码正在抛出错误。
这是代码。
function nicholsonList() {
var site = SitesApp.getSiteByUrl('https://sites.google.com/XXXXXXXXXXXXXXXXXXX');
var page = SitesApp.getPageByUrl("https://sites.google.com/XXXXXXXXXXXXXXXXXXXX");
// setting the google spreadsheet
var ss = SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXX');
var sheet = ss.getSheetByName("Nicholson");
// setting loggers to confirm information
Logger.log(site);
Logger.log(page);
Logger.log(ss);
Logger.log(sheet);
sheet.getRange('B2:H22').clearContent();
var items = page.getListItems({ start:0, max: 50 });
var itemslength = items.length;
Logger.log(itemslength);
var item, attrib = 0;
var row = 2;
var attribs = ["", "", "Project", "Description", "Assigned By", "Status", "Start Date", "Due Date", "% Complete", "Job Number", "Comments"];
for (var i in items) { if (items.hasOwnProperty(i)) {
item = items[i];
for (var j = 2; j < attribs.length; j++) {
attrib = item.getValueByName(attribs[j]);
Logger.log(attrib);
range = sheet.getRange(row,j)
var sheetwrite = sheet.setActiveRange(range)
sheetwrite.setValue(attrib);
}
Logger.log(row);
Logger.log(j);
row++;
前面有一些代码指向正确的网站地址和Google工作表和标签名称。
我在下一行收到错误。
attrib = item.getValueByName(attribs[j]);
我得到的错误是
参数无效:名称(第286行,文件“代码”)
我很难过。
我希望你能提供任何指导。
编辑
前段时间我发现了这个问题,但想要更新一下。
用户已删除了列表页面中的某些列,因此脚本正在查找的项目数量超过现有数量。