首页 > 解决方案 > var frow = e.rowStart; 返回未定义而不是数字?

问题描述

我正在尝试根据表单提交中事件的 rowStart 生成一个基本密钥。我知道该信息基于 logging JSON.stringify(e)

示例数据来自e

[19-07-30 20:05:54:656 CDT] {"authMode":{},"values":["7/30/2019 20:05:54","1","test","test","myself@someplace.com"],"namedValues":{"some other random stuff here":["test"],"Makin Bacon":["1"],"some random stuff here":["test"],"Timestamp":["7/30/2019 20:05:54"],"Email Address":["myself@someplace.com"]},"range":{"columnStart":1,"rowStart":37,"rowEnd":37,"columnEnd":5},"source":{},"triggerUid":"1234567"}

但是,当我尝试rowStart通过这样做从该事件中获取数字时,var frow = e.rowStart;它似乎在记录器中未定义。

此外,如果我尝试使用格式化数字,我在记录器中什么也得不到,Utilities.formatString("%05d", frow)但我只在一个数字上测试过它,它工作正常。

有人可以解释为什么我在这里得到一个未定义的变量吗?

function AM2(e) {
  //Logger.log(JSON.stringify(e));
  var form_name = "Form Responses 1";
  var open_name = "OPEN";

  var workbook = SpreadsheetApp.getActiveSpreadsheet();
  var form_ws = workbook.getSheetByName(form_name);
  var open_ws = workbook.getSheetByName(open_name);

  var frow = e.rowStart;
  var uni_key = "T" + Utilities.formatString("%05d", frow);
  Logger.log(uni_key); // not logging anything.
  var refSheetId = form_ws.getSheetId().toString();

  open_ws.appendRow(['NEW',e.values[1],'','=HYPERLINK("https://docs.google.com/spreadsheets/d/redacted_for_post/edit#gid=' + refSheetId + '&range=D' + frow + '", "' + e.values[2] +'")',e.values[4], uni_key]);

  var rng = open_ws.getRange("A1:A").getValues();
  var row = rng.filter(String).length;

  var rule = SpreadsheetApp.newDataValidation().requireValueInList(['NEW', 'OPEN', 'COMPLETE', 'PENDING'], true).build();

  open_ws.getRange(row, 1).setDataValidation(rule);

}

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-macros

解决方案


推荐阅读