读取布尔值时,e.values 和 e.oldValues 的类型是什么?

What is the type of e.values and e.oldValues, when reading boolean values?

提问人:GSerraG 提问时间:11/17/2023 最后编辑:TheMasterGSerraG 更新时间:11/18/2023 访问量:56

问:

类型明显不同。我们是否知道布尔类型的触发器的事件对象中返回的确切类型?e.values

google-apps-script google-sheets 复选框 触发器 eventtrigger

评论

0赞 TheMaster 11/17/2023
请不要在有问题的情况下添加答案。删除它并将其添加为下面的答案。
0赞 TheMaster 11/17/2023
如果您在下面添加答案,我可以对其进行编辑以提供代表。
0赞 Cooper 11/17/2023
我想你明白了。那么你的问题是什么?

答:

1赞 GSerraG 11/18/2023 #1

通过他的坐标读取单元格,它返回正确的值,如您在另一个表中看到的那样。细胞直接读取的值

Table of values & type of values我通过单击复选框并触发 onEdit 函数来获得此值。读取的值不是布尔值。 在表中,您可以看到读取的值为 TRUE/FALSE 和字符串类型。 通过他的坐标读取单元格,它返回正确的值,如您在另一个表中看到的那样。Values of direct reading of cells

您可以使用此代码进行测试

function onEdit(e) {
  var eA1 = e.range.getA1Notation();
  var ui = SpreadsheetApp.getUi();

  // e.value and his typeof
  ui.alert("(" + eA1 + ") e.value=" + e.value);
  ui.alert("(" + eA1 + ") typeof e.value=" + typeof e.value);

  // eValue and his typeof
  var eValue=e.value;
  ui.alert("reading of  eValue......");
  ui.alert("(" + eA1 + ") eValue=" + eValue);
  ui.alert("(" + eA1 + ") typeof eValue=" + typeof eValue);

  // getting de value of (e)cell
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var eTargetCell = sheet.getRange(eA1);
  var eCellValue = eTargetCell.getValue();

  // eCellValue and his typeof
  ui.alert("direct reading of cell.......");
  ui.alert("(" + eA1 + ") eValue=" + eCellValue);
  ui.alert("(" + eA1 + ") typeof eValue=" + typeof eCellValue);
}

您可以轻松地创建一个函数来获取“e”单元格的布尔值。要获取 e.oldValue 的正确值...如果需要,您可以通过以下方式轻松地在原始单元格中恢复它

e.range.setValue(eOldValue);

或在另一个单元格中(此点未测试)

评论

0赞 TheMaster 11/18/2023
感谢您对社区的贡献。我在你的原始帖子中添加了图片。根据需要随意编辑。