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

问题描述 投票:0回答:1

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

google-apps-script google-sheets checkbox triggers eventtrigger
1个回答
0
投票

以下所有内容均引用自上述问题。该信息的作者是GserraG。如果原作者希望自己的贡献获得声誉,他们可以添加新答案并要求删除该答案。


读取工作表上复选框的不同布尔类型的 e.values,我恢复了在表格上读取的(奇数)e.values。)

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

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


    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);

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

我在互联网上没有找到这个问题的帮助,我花了很多时间钻研,我希望这可以节省其他人的时间,或者也许有人可以修改这个代码来做一个更好的版本。

© www.soinside.com 2019 - 2024. All rights reserved.